(57)【特許請求の範囲】
【請求項１】
プロセッサの最適アーキテクチャを探索する最適マイクロアーキテクチャ探索方法であって、
コンピュータが、
評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理において、
前記設定情報をもとに、前記現在のマイクロアーキテクチャの１つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第１の探索結果として保持し、
前記マイクロアーキテクチャの構成要素を機能的なまとまりで分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成し、
前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、
前記評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第２の探索結果として保持し、
評価処理における目標および制約を示す制約情報にしたがって、前記第１の探索結果および前記第２の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、
前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する、処理を実行する
ことを特徴とする最適マイクロアーキテクチャ探索方法。
【請求項２】
前記選択した次回探索の解となるマイクロアーキテクチャが、前記第２の探索結果のマイクロアーキテクチャである場合に、前記次回探索の解となるマイクロアーキテクチャの評価を取得し、該取得した評価と前記暫定評価との誤差が予め設定された許容範囲を超えるときは、該次回探索の解となるマイクロアーキテクチャの探索結果を前記第２の探索結果から削除し、前記第１の探索結果および前記削除した第２の探索結果から次回探索の解となるマイクロアーキテクチャを選択する
ことを特徴とする請求項１に記載の最適マイクロアーキテクチャ探索方法。
【請求項３】
前記グループ情報は、前記マイクロアーキテクチャの構成要素の変更について組合せを禁止するグループ同士を示す情報を含む
ことを特徴とする請求項１または請求項２に記載の最適マイクロアーキテクチャ探索方法。
【請求項４】
前記制約情報は、目標性能値および消費電力上限制約値を含む情報、または、目標消費電力値および性能下限制約値を含む情報である
ことを特徴とする請求項１ないし請求項３に記載の最適マイクロアーキテクチャ探索方法。
【請求項５】
プロセッサの最適なマイクロアーキテクチャを探索する最適マイクロアーキテクチャ探索プログラムであって、
コンピュータが実行する、
評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理において、
前記設定情報をもとに、前記現在のマイクロアーキテクチャの１つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第１の探索結果として保持し、
前記マイクロアーキテクチャの構成要素を機能的なまとまりで分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成し、
前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、
前記評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第２の探索結果として保持し、
評価処理における目標および制約を示す制約情報にしたがって、前記第１の探索結果および前記第２の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、
前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する、処理を実行させる
ことを特徴とする最適マイクロアーキテクチャ探索プログラム。
【請求項６】
プロセッサの最適なマイクロアーキテクチャを探索するため、評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理を行う最適マイクロアーキテクチャ探索装置において、
前記設定情報をもとに、前記現在のマイクロアーキテクチャの１つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第１の探索結果として保持する近傍探索部と、
前記マイクロアーキテクチャの構成要素を機能的なまとまりで分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成する組合せ作成部と、
前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、該評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第２の探索結果として保持する評価簡易計算部と、
評価処理における目標および制約を示す制約情報にしたがって、前記第１の探索結果および前記第２の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する次回探索対象選択部とを備える
ことを特徴とする最適マイクロアーキテクチャ探索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩの設計支援に関するものであり、より詳しくは、例えばマイクロプロセッサの設計早期のマイクロアーキテクチャ検討段階で、電力または性能について最適なマイクロアーキテクチャ構成を評価する技術に関する。
【背景技術】
【０００２】
近年、システムの高集積化に伴う電力密度低減の要求、「Ｅｎｅｒｇｙ  Ｓｔａｒ（アメリカ環境保護局による電気機器省電力化プログラム）」や「省エネ法（エネルギーの使用の合理化に関する法律）」といった電気機器の消費電力規制の制定などにより、ＬＳＩの低消費電力化への要求がますます厳しくなっている。そのため、ＬＳＩ設計における低消費電力化技術の重要性が増している。
【０００３】
一般的に、ＬＳＩ設計では設計の上流ほど設計変更の自由度が大きく、消費電力の対策も、物理設計よりは論理設計、論理設計よりは方式設計と、設計のより上流側で行うほど効果の大きい対策を行うことが可能である。
【０００４】
従来手法として、設計の上流のフェーズである、演算器構成やキャッシュ構成などのマイクロアーキテクチャ（以降、「マイクロアーキテクチャ」と略す)を検討するフェーズにおいて消費電力を考慮する方法として、与えられたマイクロアーキテクチャに対して性能と消費電力を見積もるシミュレータを作成し、シミュレータの結果を活用してマイクロアーキテクチャや新規回路案の評価・検討を行うという手法が知られている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「Ｗａｔｔｃｈ：  Ａ  Ｆｒａｍｅｗｏｒｋ  ｆｏｒ  Ａｒｃｈｉｔｅｃｔｕｒａｌ−Ｌｅｖｅｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｏｐｔｉｍｉｚａｔｉｏｎ  （ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＳＣＡ  ２０００）」，ｐｐ８３−９４
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マイクロアーキテクチャ検討フェーズにおいてマイクロアーキテクチャが取りうる自由度は大きく、低電力を考慮するには様々なプログラムについて電力・性能のバランスを考慮しながら各種マイクロアーキテクチャを取捨選択していく必要がある。しかし、マイクロアーキテクチャが取りうる選択の範囲は膨大になるため、上述したような電力・性能評価シミュレータを人手で実行して最適なマイクロアーキテクチャ探索を行うのは困難である。
【０００７】
電力・性能評価シミュレータを核として、電力または性能の最適化を行う処理を考えた場合に、マイクロアーキテクチャの各要素が性能に与える影響は独立ではないことが問題となる。例えば、あるマイクロアーキテクチャで性能ボトルネックとなる要素をある程度増強すると別の要素がボトルネックになり、その性能ペナルティが元の要素のペナルティより大きい場合は逆に性能が下がることもある。また、単一の資源の場合でも資源を増やすとアクセスレイテンシが増大して逆に性能が悪化するケースもある。このように最適化のパラメータ間の依存性などにより、特定の資源増強が必ずしも性能改善につながらないため、二分探索の様な探索空間全域を使った最適化は難しい。
【０００８】
そこで、図９〜図１１を用いて、マイクロアーキテクチャの構成要素を少しずつ変更してその時の電力・性能を評価しながら最適解を探っていくという、一般的な逐次探索による最適化手法についての問題点を検討する。
【０００９】
図９は、一般的な、逐次探索によるマイクロアーキテクチャ最適化処理の処理フロー例を示す図である。ここで、評価対象のプロセッサとして、図１０に示すように、命令制御部（命令デコード部）、演算器（命令処理部１、２、メモリアクセス命令処理部）、プロセッサとメモリの間の通信を制御するメモリアクセス制御部、メモリと演算部との間の記憶階層（Ｌ１キャッシュ部、Ｌ２キャッシュ部）、および、各処理部や各記憶階層の間をつなぐバッファメモリ等を持った構成を想定する。
【００１０】
図１１は、マイクロアーキテクチャの設定情報の例を示す図である。逐次探索処理において変更可能なマイクロアーキテクチャ構成要素（変数）としては、図１１に示すような演算器数、キャッシュサイズ、記憶階層間のバッファのサイズなどがあるものとして説明を行う。
【００１１】
検討する逐次探索による最適化手法において、入力または出力される情報は、以下のとおりとする。
【００１２】
入力される情報：  評価対象プログラム群、制約情報、マイクロアーキテクチャの設定情報。
【００１３】
制約情報は、達成目的や制約条件を示し、例えば、消費電力上限制約、目標性能値などを含む。マイクロアーキテクチャの設定情報は、プロセッサのマイクロアーキテクチャにおいて、マイクロアーキテクチャを構成する可変な要素、各要素が取り得る値、各要素の初期値を含む。
【００１４】
出力する情報：  条件を満たす最適なマイクロアーキテクチャ構成、該構成の性能値、該構成の消費電力値。
【００１５】
検討する逐次探索による最適化手法による処理は、既知のマイクロアーキテクチャの電力・性能評価処理と連動して、近傍探索を繰り返し、与えられた制約情報を満たすマイクロアーキテクチャ構成、その電力値、性能値を含むマイクロアーキテクチャ情報を出力する。
【００１６】
近傍探索では、以下の、初期解設定処理、近傍探索処理、次回探索対象選択処理、及び終了判断処理を行う。
【００１７】
初期解設定処理：  マイクロアーキテクチャの設定情報の初期値の構成となるマイクロアーキテクチャを現在のマイクロアーキテクチャとする。そして、現在のマイクロアーキテクチャについて、評価対象プログラム群の実行時の電力・性能を評価する。
【００１８】
近傍探索処理：  マイクロアーキテクチャの設定情報の可変な各要素を、現在のマイクロアーキテクチャから一段階増加または減少した値をとる各近傍マイクロアーキテクチャに対して電力・性能を評価し、得られた各情報＜マイクロアーキテクチャ構成，電力，性能＞を探索結果とする。
【００１９】
次回探索対象選択処理：  現在のマイクロアーキテクチャおよび探索結果の各マイクロアーキテクチャの電力・性能評価をもとに、探索結果の中から次回探索対象のマイクロアーキテクチャを決定する。
【００２０】
終了判断処理：  次回探索対象のマイクロアーキテクチャが制約情報（消費電力上限制約および目標性能値）を満たす場合、または、探索結果の中から適切な次回探索対象のマイクロアーキテクチャが見つからなかった場合に、その時のマイクロアーキテクチャについての情報であるマイクロアーキテクチャ情報＜最適マイクロアーキテクチャ構成，電力，性能＞を出力し、処理を終了する。そうでない場合は、次回探索対象マイクロアーキテクチャを現在のマイクロアーキテクチャに設定し、上記の「近傍探索処理」から次の探索ステップを繰り返す。
【００２１】
ここで、上記の「次回探索対象選択処理」において次の解を選択するためのアルゴリズムとして、目的とする評価値（性能，電力）が毎ステップ改善するように次の解を選択していく山登り法（ｈｉｌｌ−ｃｌｉｍｂｉｎｇ）、焼きなまし法（ｓｉｍｕｌａｔｅｄ  ａｎｎｅａｌｉｎｇ）のように途中のステップで改悪を許しながら最適解を求めていく方法などがある。いずれの方法においても、探索を進めていく各々のステップで現在の解の近傍のマイクロアーキテクチャの電力・性能を評価し、それに基づいてその近傍マイクロアーキテクチャの中から次の解を選択するという手順をとることになる。
【００２２】
このように、逐次探索では、近傍マイクロアーキテクチャに対する特定の評価対象プログラム群実行時の電力・性能評価処理を繰り返し大量に行う必要がある。この電力・性能評価処理は、探索アルゴリズムのその他の処理と比べて非常に時間がかかる処理であるため、従来の逐次探索による最適化手法では、その処理時間の大半をこの電力・性能評価で費やすこととなり、処理全体として非常に時間がかかるという問題がある。
【００２３】
本発明は、上記検討した問題を解決するため、ＬＳＩ設計のマイクロアーキテクチャ検討フェーズにおいて、電力・性能を考慮した最適なマイクロアーキテクチャ構成を求める処理を高速化する最適化マイクロアーキテクチャ探索技術を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明の一態様として開示する最適マイクロアーキテクチャ探索方法は、コンピュータが、評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理において、１）前記設定情報をもとに、前記現在のマイクロアーキテクチャの１つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第１の探索結果として保持し、２）前記マイクロアーキテクチャの構成要素を機能的なまとまりで分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成し、３）前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、４）前記評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第２の探索結果として保持し、５）評価処理における目標および制約を示す制約情報にしたがって、前記第１の探索結果および前記第２の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、６）前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する、処理を実行するものである。
【発明の効果】
【００２５】
本発明の一態様として開示する最適マイクロアーキテクチャ探索方法によれば、ＬＳＩ設計のマイクロアーキテクチャ検討フェーズにおいて、電力・性能を考慮した最適なマイクロアーキテクチャ構成を求める処理を高速化することができ、もって、プロセッサ設計の短縮化を支援することができる。
【図面の簡単な説明】
【００２６】
【図１】開示する最適マイクロアーキテクチャ探索システムの一実施の形態におけるブロック構成例を示す図である。
【図２】本実施の形態における評価対象のマイクロアーキテクチャの例を示す図である。
【図３】マイクロアーキテクチャのグループ化例を示す図である。
【図４】グループ情報の例を示す図である。
【図５】最適マイクロアーキテクチャ探索装置の概要処理の処理フロー例を示す図である。
【図６】最適マイクロアーキテクチャ探索装置のハードウェア構成例を示す図である。
【図７】近傍マイクロアーキテクチャの電力・性能評価結果の例を示す図である。
【図８】最適マイクロアーキテクチャ探索装置による処理および従来手法による処理の処理時間ならびに性能変動のグラフ例を示す図である。
【図９】一般的な逐次探索によるマイクロアーキテクチャの最適化処理フロー例を示す図である。
【図１０】対象のマイクロプロセッサのマイクロアーキテクチャ例を示す図である。
【図１１】マイクロアーキテクチャの設定情報の例を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明の一態様として開示する最適マイクロアーキテクチャ探索システムについて説明する。
【００２８】
図１は、開示する最適マイクロアーキテクチャ探索システムの一実施の形態におけるブロック構成例を示す図である。
【００２９】
図１に示す最適マイクロアーキテクチャ探索システム１０は、最適マイクロアーキテクチャ探索装置１と電力・性能評価装置２とを備え、電力・性能評価装置２による電力・性能評価を核として、電力・性能評価装置２と最適マイクロアーキテクチャ探索装置１とが連係して評価し、最適なマイクロアーキテクチャに関する情報を出力する。
【００３０】
最適マイクロアーキテクチャ探索装置１は、電力・性能評価装置２によるマイクロアーキテクチャの電力・性能評価の際に、評価対象のマイクロアーキテクチャの構成要素を機能的な関連によりグループ化したグループ情報を用いて、逐次探索において異なるグループ毎のマイクロアーキテクチャの変更を一度に適用することによって、逐次探索の実行ステップ数を削減し、結果として電力・性能評価装置２の評価処理の回数を削減し、マイクロアーキテクチャ最適化処理を高速化することができる。
【００３１】
あるマイクロアーキテクチャから構成する要素を変更する場合に、例えば、演算資源の増強と階層記憶（Ｌ２キャッシュ）の増強との関係のように、機能的な結びつきが強くない要素に関する変更であって、かつ、要素個々の変更の度合いがあまり大きくない場合に、それらの変更を組み合わせた時のマイクロアーキテクチャの電力・性能の変動は、要素個々の変更の効果が独立に作用したと想定した値になる場合が多い。例えば、Ｌ２キャッシュでキャッシュミスが起きるようなアドレスは、Ｌ１キャッシュのサイズを多少変更してもＬ１キャッシュではキャッシュミスする場合が多かったり、演算器を減らして命令の実行頻度が下がっても全キャッシュミス回数は変わらずにキャッシュミスの発生頻度が下がるだけであったりという状況等が該当する。
【００３２】
マイクロアーキテクチャの変更Ａ、Ｂが独立に作用すると考えた場合に、元のマイクロアーキテクチャでの実行サイクル数をｔ、消費電力をｐとし、そこからマイクロアーキテクチャの変更Ａを加えた時の実行サイクル数および消費電力をそれぞれｔ１、ｐ１とし、マイクロアーキテクチャの変更Ｂを加えた時の実行サイクル数および消費電力をｔ２、ｐ２とする。この場合に、元のマイクロアーキテクチャに変更Ａ及び変更Ｂを加えた時（変更Ａ＋変更Ｂ）の実行サイクル数ｔ’及び消費電力ｐ’は、変更Ａ、Ｂそれぞれの変動量Δｔ１＝ｔ１−ｔ、Δｔ２＝ｔ２−ｔ、Δｐ１＝ｐ１−ｐ、Δｐ２＝ｐ２−ｐを用いて、
ｔ’＝ｔ＋Δｔ１＋Δｔ２、
ｐ’＝ｐ＋Δｐ１＋Δｐ２
という計算となる。この計算は、３変数以上の場合も同様である。
【００３３】
電力ｐ’の場合には、実際は、エネルギー（＝電力ｘ時間）の変動が独立に加算されると考えられるが、実行サイクル数ｔがΔｔ１、Δｔ２と比べて十分大きいと想定すれば、上記のようなΔｐの加算による計算は、十分実用的なものになる。
【００３４】
ところで、上記のような単純計算した評価と電力・性能評価処理による実際の評価結果とがずれるようなケースとしては、例えば、性能改善の結果、変更Ａ、Ｂとは無関係な別の性能ボトルネック要因が表面化した場合、変更Ａ，Ｂが、マイクロアーキテクチャにおいて無視できないほど相互に影響する場合などが想定される。しかし、そうでない場合、すなわち、単純計算した評価と実際の評価結果とが近くなる場合が多い。
【００３５】
そこで、最適マイクロアーキテクチャ探索装置１は、マイクロアーキテクチャの構成要素を、プロセッサ動作時に同じ命令フローまたはデータフローで動作するような機能的なまとまりでグループ化したグループ情報を、新たに入力に加えて使用する。機能的なまとまりを示すグループ化のなかで異なるグループにそれぞれ属する複数の構成要素に加えた変更は、マイクロアーキテクチャの評価に関して独立に作用する可能性が高いと考えられるからである。
【００３６】
最適マイクロアーキテクチャ探索装置１は、マイクロアーキテクチャの複数グループの構成要素の変更を同時に加えたマイクロアーキテクチャ変更に対する電力・性能評価を簡易計算で求め、その結果を探索結果に加えることにより、通常の近傍探索処理に対して高速化を図っている。
【００３７】
上記の高速化を図るべく、開示する評価支援システムの最適マイクロアーキテクチャ探索装置１は、制約情報３１、設定情報３２、およびグループ情報３３を入力とし、評価結果としてマイクロアーキテクチャ情報＜制約条件を満たす最適マイクロアーキテクチャ構成，該構成の性能値，該構成の消費電力値＞を出力とする。
【００３８】
なお、電力・性能評価装置２は、既知の評価対象プログラム群３４を入力として、最適マイクロアーキテクチャ探索装置１から与えられたマイクロアーキテクチャの構成において、評価対象プログラム群３４の実行時の電力および性能の評価を行う。
【００３９】
図２は、本実施の形態における評価対象のマイクロプロセッサのマイクロアーキテクチャの例を示す図である。
【００４０】
評価対象のマイクロプロセッサのマイクロアーキテクチャは、命令処理コア５−１、…、５−Ｎ、命令処理コア５、メモリアクセス制御部６、メモリアクセス制御部６との間に設けられたＬ２キャッシュ部７等を備えるものを想定する。
【００４１】
各命令処理コア５は、命令制御を行う命令デコード部５１、特定の処理を行う命令処理部５２、５３、メモリアクセスを行うメモリアクセス命令処理部５４、メモリアクセス命令処理部５４とメモリアクセス制御部６との間の階層記憶であるＬ１キャッシュ部５５、Ｌ２キャッシュ部７、各処理部５１〜５４の入力／出力側に設けられるバッファ５１１、５１２、５１３、５１４、５１５、５１６等を備えるものと想定する。メモリアクセス制御部６は、メモリアクセスインタフェース（メモリアクセスＩ／Ｆ）６１、Ｌ２キャッシュ部７との間に設けられるバッファ６１１、６１２を備えるものと想定する。
【００４２】
制約情報３１は、評価処理の目標や制限等を示す情報であり、例えば、目標性能値、消費電力上限制約値等の情報、目標消費電力値、性能下限制約値等の情報である。
【００４３】
設定情報３２は、評価対象のマイクロアーキテクチャの設定に関する情報であり、例えば、近傍探索処理において変更可能なマイクロアーキテクチャの構成要素（変数）、各構成要素が可変範囲として取り得る値、各構成要素の初期値等を含む情報である。本実施形態の説明では、設定情報３２として、図１１に示す情報を使用するものとする。
【００４４】
グループ情報３３は、マイクロアーキテクチャの構成要素を機能的なまとまりでグループ化したグループを示す情報である。マイクロアーキテクチャの構成要素の機能的なまとまりとは、マイクロプロセッサの動作時に、マイクロプロセッサ内の命令やデータの流れに与える影響の類似性によるまとまりを意味する。すなわち、グループ情報３３の１つのグループは、１つの機能的まとまりを持つ構成要素群を包含する。
【００４５】
グループ化の一例としては、リザベーションステーションのような、命令発行のための独立した命令受付バッファをもつ１または複数の命令処理ユニット、および、１つまたは複数レベルのキャッシュ、および、主記憶からなる記憶階層を持つ計算機において、以下のようにグループ化を行う。
【００４６】
（１）各命令受付バッファおよびそのバッファから命令発効される命令処理ユニットの構成に関するマイクロアーキテクチャ構成要素（変数）を、それぞれグループ化する。
【００４７】
（２）各記憶階層のキャッシュメモリ、および、上位の記憶階層との間のデータ転送・アクセス受付に用いられるバッファの構成に関するマイクロアーキテクチャ構成要素（変数）をまとめたものを、それぞれグループ化する。
【００４８】
なお、階層記憶の第１階層（Ｌ１）キャッシュについては、通常の命令処理パイプラインと独立して突き離し制御でアクセスされる場合は、上記（１）に示すようにマイクロアーキテクチャの構成要素のグループ化を行うが、命令処理パイプラインに組み込まれている場合は、メモリアクセス命令処理用の受付バッファからＬ１キャッシュまでの間の構成要素を１つのグループとする。
【００４９】
図３は、図２に示すマイクロアーキテクチャのグループ化例を示す図である。
【００５０】
マイクロアーキテクチャを構成する処理部やメモリアクセス制御部等は、図３に示すように、機能的まとまりによりグループ化される。
【００５１】
整数演算に関連する構成要素のグループ（グループ１）：バッファ５１２、命令処理部５２、
フローティング演算（ｆｌｏａｔｉｎｇ演算）に関連する構成要素のグループ（グループ２）：バッファ５１３、命令処理部５３、
Ｌ１キャッシュに関連する構成要素のグループ（グループ３）：バッファ５１４、メモリアクセス命令処理部５４、Ｌ１キャッシュ部５５、
Ｌ２キャッシュに関連する構成要素のグループ（グループ４）：バッファ５１５、５１６、Ｌ２キャッシュ部７、
メモリアクセスに関連する構成要素のグループ（グループ５）：バッファ６１１、６１２、メモリアクセスＩ／Ｆ６１。
【００５２】
図４は、グループ情報３３の例を示す図である。
【００５３】
図３に示すグループ化をした場合に、図４に示すグループ情報３３が最適マイクロアーキテクチャ探索装置１に入力される。グループ情報３３は、マイクロアーキテクチャの近傍探索において可変な構成要素（変数）と、構成要素が属するグループの識別番号とが対応付けられている。図４に示すグループ番号は、図３に示すグループ番号に対応している。
【００５４】
次に、最適マイクロアーキテクチャ探索装置１の内部構成について説明する。
【００５５】
図１に示すように、最適マイクロアーキテクチャ探索装置１は、初期解設定部１１、近傍探索部１２、組合せ作成部１３、電力・性能簡易計算部１４、次回探索対象選択部１５、電力・性能再評価部１６、および終了判断部１７を有する。
【００５６】
初期解設定部１１は、設定情報３２の初期値の構成となるマイクロアーキテクチャを現在のマイクロアーキテクチャに設定し、現在のマイクロアーキテクチャにおいて評価対象プログラム群３４を実行した時の電力・性能評価を電力・性能評価装置２から得て、得られた情報＜初期マイクロアーキテクチャ，電力，性能＞を現在の解とする。
【００５７】
近傍探索部１２は、現在のマイクロアーキテクチャから、設定情報３２の変更可能な各要素を、選択可能な範囲内で一段階増加または減少させた構成となる各マイクロアーキテクチャ（近傍マイクロアーキテクチャ）に対する電力・性能評価を、電力・性能評価装置２から得て、得られた情報＜近傍マイクロアーキテクチャ，電力，性能＞を探索結果とする。
【００５８】
組合せ作成部１３は、各近傍マイクロアーキテクチャについて、グループ情報３３の異なるグループに属する複数の要素の変更の組合せを作成し、マイクロアーキテクチャの変更の組合せを示すリストを作成する。
【００５９】
電力・性能簡易計算部１４は、近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの電力・性能の評価の変動量を求め、組合せ作成部１３が作成したリスト内の各組合せに対し、組合せ内の個々の要素が単一の変更である場合の評価（該当する変更の近傍マイクロアーキテクチャの電力・性能）についての、現在のマイクロアーキテクチャの評価（電力、性能）からの変動量をもとに、その組合せが示す要素を変更したマイクロアーキテクチャの電力、性能を簡易な式で計算し、求めた情報＜組合せのマイクロアーキテクチャ，簡易計算電力，簡易計算性能＞を、近傍探索部１２が出力した第１の探索結果に追加する。
【００６０】
ここで、近傍探索部１２が探索したマイクロアーキテクチャ構成に対する探索結果（第１の探索結果）と、組合せ作成部１３が組み合わせたマイクロアーキテクチャ構成に対する探索結果（第２の探索結果）とが区別可能に保存されるものとする。
【００６１】
次回探索対象選択部１５は、各探索結果の電力・性能をもとに次回探索対象のマイクロアーキテクチャを選択する。
【００６２】
電力・性能再評価部１６は、次回探索対象のマイクロアーキテクチャが、電力・性能簡易計算部１４が追加した探索結果の中から選択された場合に、選択された次回探索対象のマイクロアーキテクチャの電力・性能評価を、電力・性能評価装置２から得る。さらに、電力・性能再評価部１６は、電力・性能評価装置２から得た電力・性能と、電力・性能簡易計算部１４が計算した電力・性能（簡易計算電力、簡易計算性能）との差が予め定めた許容範囲より大きい場合は、探索結果から、選択されている次回探索対象のマイクロアーキテクチャを除外し、次回探索対象選択部１５に対し、次回探索対象の再選択を要求する。
【００６３】
終了判断部１７は、次回探索対象のマイクロアーキテクチャが制約情報３１の消費電力上限制約および目標性能値を満たす場合、または、次回探索対象選択部１５が探索結果の中から適切な次回探索対象マイクロアーキテクチャを選択しなかった場合に、その時の現在のマイクロアーキテクチャについてマイクロアーキテクチャ情報＜最適マイクロアーキテクチャ，電力，性能＞を出力する。
【００６４】
図５は、最適マイクロアーキテクチャ探索装置１の概要処理の処理フロー例を示す図である。
【００６５】
ステップＳ１：  初期解設定部１１は、設定情報３２にもとづいて、逐次探索の初期解となるマイクロアーキテクチャを設定する。初期解設定部１１は、各構成要素が設定情報３２の初期値であるマイクロアーキテクチャ構成を初期解とする。
【００６６】
初期解設定部１１は、電力・性能評価装置２から、初期解のマイクロアーキテクチャにおける評価対象プログラム群３４の実行時の電力・性能評価を取得し、得られた情報＜初期解マイクロアーキテクチャ，電力，性能＞を逐次探索の「現在の解」とする。
【００６７】
ステップＳ２：  近傍探索部１２は、「現在の解」のマイクロアーキテクチャから、設定情報３２の変更可能な各要素を、選択可能な値内で一段階増加または減少して得られるマイクロアーキテクチャ構成を「近傍マイクロアーキテクチャ」とみなし、全ての近傍マイクロアーキテクチャに対して、電力・性能評価装置２による電力・性能評価を得る。近傍探索部１２は、得られた各情報＜近傍マイクロアーキテクチャ，電力，性能＞を近傍探索結果とする。
【００６８】
ステップＳ３：  組合せ作成部１３は、ステップＳ２の処理で探索した単一のマイクロアーキテクチャの変更を複数組み合わせたマイクロアーキテクチャ構成の変更のリストを作成する。その際、組合せ作成部１３は、グループ情報３３をもとに、同一のグループに含まれる構成要素の変更は１つのみとして変更を組み合わせる。
【００６９】
例えば、マイクロアーキテクチャ構成要素Ａ〜Ｇが、グループ１＝｛Ａ，Ｂ｝、グループ２＝｛Ｃ，Ｄ，Ｅ｝、グループ３＝｛Ｆ，Ｇ｝のようにグループ化されていたと想定する。この場合には、マイクロアーキテクチャの変更する要素が、変更１＝｛Ａ増，Ｃ減，Ｆ増｝、変更２＝｛Ｂ減，Ｇ増｝、変更３＝｛Ｃ増，Ｆ減｝、…のように、異なるグループの要素のみを組み合わせて新しいマイクロアーキテクチャが生成されるようにする。
【００７０】
マイクロアーキテクチャ構成の変更の組合せの作成は、グループ内で要素を選択しないことを制約とするような、全グループ間の全要素の組合せであり、既知のアルゴリズムで処理できるため、ここでは組合せの作成処理について詳細説明を省略する。
【００７１】
なお、全ての変更の組合せを作成する場合に、組合せ数に応じて処理時間が長くなる。しかし、従来手法による電力・性能評価の処理時間は、他の処理時間と比較して圧倒的に大きいため、全組合せの作成時間分が増加しても全体の処理時間への影響は小さい。また、以下のような手法により、組合せの数を削減することも可能である。
【００７２】
（１）例えば、次回探索対象選択処理（ステップＳ５）で、山登り法（ｈｉｌｌ  ｃｌｉｍｂｉｎｇ）のように、目的変数が毎回改善するものだけを選択する手法による選択処理であれば、組合せの作成の際に「目的変数が改善するものだけを組み合わせる」のような、次回探索対象選択処理での選択基準を満たすものだけを組み合わせる。
【００７３】
（２）組み合わせる構成要素数の増加に伴い、実際の電力・性能評価と簡易計算による評価との誤差が大きくなる可能性が高くなる。そのため、組み合わせる構成要素数を制限して組み合わせる。
【００７４】
（３）マイクロアーキテクチャの変更による最適化パラメータ（性能または電力）の増減について、その相対的変動量または絶対的変動量が、別途与える基準値より大きいものだけを選択して組み合わせる。
【００７５】
（４）最適化が性能向上であれば、各要素を増やす変更のみを選択し、最適化が電力削減であれば、各要素を減らす変更のみを選択する。この場合には、必ずしも要素の増加／減少がそのまま性能や電力の増加／減少になるとは限らないため、必ず最適解に到達できるものではないが、ある程度高い相関があるため、逐次探索のステップ数削減という効果を得ることができる。
【００７６】
ステップＳ４：  電力・性能簡易計算部１４は、ステップＳ３の処理で作成したリスト内の各組合せに対し、その組合せに含まれる構成要素の変更を同時に加えたマイクロアーキテクチャ構成についての電力・性能を、その変更による電力・性能の変動が独立に作用したとみなして、所定の計算式により計算する。
【００７７】
例えば、元のマイクロアーキテクチャでの実行サイクル数をｔ、消費電力をｐとする。さらに、元のマイクロアーキテクチャからマイクロアーキテクチャの変更Ａを加えた時の実行サイクル数および消費電力をそれぞれｔａ、ｐａとし、マイクロアーキテクチャの変更Ｂを加えた時の実行サイクル数および消費電力をｔｂ、ｐｂとする。
【００７８】
元のマイクロアーキテクチャに，組合せに含まれる変更Ａ、Ｂ、…を加えた時の実行サイクル数ｔ’は、各変更の変動量Δｔａ＝ｔａ−ｔ、Δｔｂ＝ｔｂ−ｔ、…を用いて、
ｔ’＝ｔ＋Δｔａ＋Δｔｂ＋…
と計算する。同様に、組合せに含まれる変更Ａ、Ｂ、…を加えた時の消費電力ｐ’は、各変更の変動量Δｐａ＝ｐａ−ｐ、Δｐｂ＝ｐｂ−ｐ、…を用いて、
ｐ’＝ｐ＋Δｐａ＋Δｐｂ＋…
と計算する。
【００７９】
電力・性能簡易計算部１４は、得られた各情報＜マイクロアーキテクチャ，暫定計算電力，暫定計算性能＞を探索結果に追加する。この際に、ステップＳ２の処理で得た元々の探索結果（第１の探索結果）のマイクロアーキテクチャと、ステップＳ３の処理で生成した組合せにより追加したマイクロアーキテクチャの探索結果（第２の探索結果）とを区別可能にして保持する。
【００８０】
ステップＳ５：  次回探索対象選択部１５は、各探索結果の電力・性能の値をもとに、探索結果の中から逐次探索の次のフェーズの基準（次探索の解）となるマイクロアーキテクチャを選択する。
【００８１】
次回探索対象選択部１５は、選択として、ステップＳ２の処理で得た元の探索結果とステップＳ３の処理で得たマイクロアーキテクチャの探索結果とを同等に扱い選択を行う方法の他、単一のマイクロアーキテクチャの変更に比べて一般的により大きく電力・性能が変動する、ステップＳ３の処理で得たマイクロアーキテクチャの探索結果を優先的に選択する方法をとることができる。
【００８２】
ステップＳ６：  次回探索対象選択部１５は、「次探索の解（次回探索対象）」として選択したものが、ステップＳ３の処理で作成されたマイクロアーキテクチャであるかを判定する。「次探索の解」が、ステップＳ３の処理で作成されたマイクロアーキテクチャである場合に（ステップＳ６のＹ）、ステップＳ７の処理へ進み、そうでない場合に（ステップＳ６のＮ）、ステップＳ１０の処理へ進む。
【００８３】
ステップＳ７：  次回探索対象選択部１５は、「次探索の解」として選択したマイクロアーキテクチャに対する電力・性能の評価を、電力・性能評価装置２から得る。
【００８４】
ステップＳ８：  次回探索対象選択部１５は、電力・性能評価装置２から得られた電力・性能と、ステップＳ４の処理で計算した暫定的評価（暫定計算電力、暫定計算性能）との誤差が、予め定めた許容範囲内であるかを判定する。そして、誤差が許容範囲内を超えている場合に（ステップＳ８のＮ）、ステップＳ９の処理へ進む。誤差が許容範囲内である場合は（ステップＳ８のＹ）、次回探索対象選択部１５は、暫定値（暫定計算電力、暫定計算性能）に代えて、ステップＳ７の処理で得た＜電力，性能＞を「次探索の解」の電力・性能として、ステップＳ１０の処理へ進む。
【００８５】
なお、ステップＳ７の再評価で得られた電力・性能の値と、暫定値との誤差が大きな誤差である場合に、次回探索対象選択部１５は、最適化するパラメータが改善される方向への誤差であるかを判断し、改善される方向への誤差であると判断した場合に、誤差を許容してステップＳ１０の処理へ進めるようにしてもよい。
【００８６】
ステップＳ７およびＳ８の処理は、ステップＳ３の組合せにより作成したマイクロアーキテクチャの電力・性能の評価が簡易計算による暫定値であり、確率は高くないものの実際の電力・性能がその暫定値から大きく外れている可能性があることから、電力・性能を改めて評価する必要があるからである。
【００８７】
ステップＳ９：  次回探索対象選択部１５は、探索結果から、選択されている「次探索の解」のマイクロアーキテクチャの探索結果を保持している探索結果から削除し、ステップＳ５の処理へ戻る。
【００８８】
ステップＳ１０：  終了判断部１７は、選択された「次探索の解」のマイクロアーキテクチャの電力・性能により、終了条件が成立しているかを判断する。
【００８９】
終了判断部１７は、「次探索の解」が、制約情報３１の消費電力上限制約および目標性能値を満たす場合、または、ステップＳ５の処理において探索結果の中から適切な「次探索の解」が選択されていなかった場合など、近傍探索処理を終了するための条件が成立したかどうかを判定し、終了条件が成立した場合は（ステップＳ１０のＹ）、ステップＳ１１の処理へ進み、終了条件が成立しなかった場合は（ステップＳ１０のＮ）、ステップＳ１２の処理へ進む。
【００９０】
ステップＳ１１：  終了判断部１７は、「現在の解」のマイクロアーキテクチャの情報を、マイクロアーキテクチャ情報＜最適マイクロアーキテクチャ構成，電力，性能＞を出力して終了する。
【００９１】
ステップＳ１２：  終了判断部１７は、「次探索の解」のアーキテクチャを「現在の解」のアーキテクチャとして設定し、ステップＳ２の処理へ戻る。なお、近傍探索部１２は、「現在の解」のアーキテクチャをもとに近傍マイクロアーキテクチャを生成する。
【００９２】
上述するように、最適マイクロアーキテクチャ探索装置１では、複数のマイクロアーキテクチャの変更を組み合わせたものを候補に組み込むことによって、本来なら複数回の逐次探索ステップとなるマイクロアーキテクチャの変更を一度の探索処理で選択可能とする処理を実現する。これにより、逐次探索での繰り返し処理のステップ数を削減して最適化処理の収束を早め、高速化を図ることができる。
【００９３】
上述の実施の形態例では、最適マイクロアーキテクチャ探索装置１は、目標性能値、消費電力上限制約値を設定した制約情報３１を入力し、上限電力制約のもとで性能値を最適化(最大化)する処理を例としている。しかし、最適マイクロアーキテクチャ探索装置１は、目標消費電力値、性能下限制約値を設定した制約情報３１を入力し、同様の処理で、下限性能制約のもとで消費電力を最小化する最適化処理を行うことも可能である。さらに、最適マイクロアーキテクチャ探索装置１は、同様にして、与えられた消費電力、性能の範囲の中で単位電力当たりの性能を最大化する最適化処理を行うことも可能であり、この他にも電力と性能とを組み合わせた様々な指標を最適化する処理に適用することが可能である。
【００９４】
また、最適マイクロアーキテクチャ探索装置１は、グループ情報３３に、グループ内の定義として、他の特定のグループとの組合せを作成することを禁止する設定を設けることができるようにし、そのようなグループ情報３３を入力し、組合せ作成部１３は、そのようなグループ情報３３にもとづいて組合せを作成する。
【００９５】
例えば、図１１に示す設定情報３２、図４に示すグループ情報３３が与えられ、これに新たに、命令のデコードや発行、Ｏｕｔ−ｏｆ−ｏｒｄｅｒの完了処理のような実行する全命令の生成・終了に関わる資源を新たに加える場合を想定する。このような資源の増減は、図４に示すグループ情報３３のグループ番号１、２のグループと特に機能的な結びつきが強く、そのため、グループ番号＝１、２のグループのいずれか一方に加えることはできない。グループ番号＝１、２のグループを合わせて１つのグループにすることも考えられるが、ステップＳ３の処理で可能なマイクロアーキテクチャの変更の組み合わせを減らしてしまうことになり、全体として処理時間の増大となる。そこで、この新たに追加するマイクロアーキテクチャ資源のために、グループ情報３３に、新たなグループ（例えばグループ番号＝６）を定義し、グループ番号＝６と、グループ番号＝１、２のグループの要素とを組み合わせることを禁止する設定を設けておく。これにより、組合せ作成部１３は、マイクロアーキテクチャの変更を組合せる処理において、特定のグループと関係が深いマイクロアーキテクチャの構成要素についてもグループ化にもとづいて処理することが可能となる。
【００９６】
以上説明した最適マイクロアーキテクチャ探索装置１は、図１に示す処理部を備える専用ハードウェアとして実施することができる。
【００９７】
また、最適マイクロアーキテクチャ探索装置１を、図１に示す処理部の機能を実現するプログラムとして実装し、図６に示すような、処理装置（ＣＰＵ）１０１、メモリ１０２、記憶装置（ハードディスク）１０３、入力装置（キーボード）１０４、出力装置（ディスプレイ）１０５が内部のネットワーク等で接続されたコンピュータ１００上で実行することにより、実施することができる。
【００９８】
すなわち、図１に示した初期解設定部１１、近傍探索部１２、組合せ作成部１３、電力・性能簡易計算部１４、次回探索対象選択部１５、電力・性能再評価部１６、終了判断部１７の機能をコンピュータに実行させる実行プログラムをコンピュータ１００に読み込ませ、実行させることによって，最適マイクロアーキテクチャ探索装置１を実現することができる。
【００９９】
この場合に、コンピュータ１００のＣＰＵ１０１が、例えば、
・  上記の実行プログラムおよび入力となる情報（評価対象プログラム群３４、設定情報３２、グループ情報３３を個別のファイルとしてハードディスク１０３に格納する。
・  キーボード１０４から実行プログラムを起動する。この際に、制約情報３１（消費電力上限,目的性能）を引数として一緒に入力する。
・  起動された実行プログラムが、メモリ１０２にロードされ、必要に応じて評価対象プログラム群３４、設定情報３２、グループ情報３３をハードディスク１０３からメモリ１０２に読み出しながら処理を進める。
・  最後に結果をディスプレイ１０５に表示して終了する。
といった方法で処理を実行する。
【０１００】
なお、実行プログラムは、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ等やフレキシブルディスク等の記録媒体だけでなく、通信回線の先に備えられた他の記憶装置やコンピュータのハードディスク等に記憶されるものであってもよい。
【０１０１】
また、最適マイクロアーキテクチャ探索装置１を構成する要素は、任意の組合せで実現されてもよい。複数の構成要素が１つの部材として実現されてもよく、１つの構成要素が複数の部材から構成されてもよい。また、最適マイクロアーキテクチャ探索装置１は、上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲において各種の改良および変更を行ってもよいことは当然である。
【０１０２】
次に、最適マイクロアーキテクチャ探索装置１の効果を説明する。
【０１０３】
最適マイクロアーキテクチャ探索装置１において、例えば、Ｌ個の近傍マイクロアーキテクチャの変更を組み合わせたマイクロアーキテクチャについての選択をする探索フェーズをＭ回繰り返してマイクロアーキテクチャＸに到達したと想定する。「現在の解」の近傍マイクロアーキテクチャの数をＮと想定する。
【０１０４】
本発明に係る最適マイクロアーキテクチャ探索装置１を適用せず、従来手法により最適マイクロアーキテクチャを探索する場合に、「現在の解」からマイクロアーキテクチャＸに到達するまでに、これ以降Ｌ＊Ｍ回の近傍探索が必要となり、その各回の処理においてＮ個の近傍の探索を行う。そのため、その間に（Ｌ＊Ｍ）＊（Ｎ−１）回の電力・性能の評価が必要となる（Ｎ個の近傍のうち１個は直前の探索の解であって、電力・性能は評価済みであるため、各回の電力性能評価はＮ−１回となる）。
【０１０５】
これに対し、最適マイクロアーキテクチャ探索装置１によれば、探索フェーズはＭ回であるため、電力・性能の評価の回数は、電力・性能再評価部１６による「電力・性能再評価処理（ステップＳ４）」の１回を加えて、Ｍ＊（Ｎ＋１）回で済むことになる。全最適化処理において電力・性能評価の処理時間が支配的であるため、開示した最適マイクロアーキテクチャ探索装置１を適用することにより、最適化処理全体の処理時間が短縮されることになる。ここで、Ｎが十分大きい場合は、約１／Ｌとなる。
【０１０６】
また、組合せ作成部１３による処理（ステップＳ３）で生成されて探索結果に加えられるマイクロアーキテクチャの構成は、複数の変更を組み合わせたものであるため、単一の変更である元の探索結果と比較して電力・性能の変動量が大きいものが含まれている可能性が高い。このため、元の探索結果と比べて、次回探索対象選択部１５による処理（ステップＳ５）において次回探索対象として選択される確率が高い。さらに、上述したように、電力・性能簡易計算部１４により計算される、組合せによるマイクロアーキテクチャの暫定的な電力・性能値は、実際に評価した電力・性能と近い値である可能性が高いため、電力・性能再評価部１６の処理（ステップＳ７）で選択されたマイクロアーキテクチャが棄却される可能性は低い。
【０１０７】
以上のことからも、最適マイクロアーキテクチャ探索装置１による最適マイクロアーキテクチャ探索処理において、時間短縮効果が得られる可能性は高いということがわかる。
【実施例】
【０１０８】
以下に、開示する最適マイクロアーキテクチャ探索装置１の一実施例として、図３に示すような構成のマイクロプロセッサにおいて、図１１に示す設定情報３２および図４に示すグループ情報３３を入力として与えられ、制約情報３１に示される電力上限制約のもとで性能の最大化を行う場合を説明する。
【０１０９】
ここで、電力・性能評価装置２が出力する性能値は、ＩＰＣ（ｉｎｓｔｒｕｃｔｉｏｎｓ  ｐｅｒ  ｃｌｏｃｋ：クロックサイクル当たり実行命令）で表すこととし、複数の評価対象プログラム群３４を実行して得られる複数の電力値・性能値が、評価後に幾何平均等により代表値である１つの電力値・性能値に変換されるものとする。
【０１１０】
最適マイクロアーキテクチャ探索装置１は、消費電力上限値Ｐ＿ｌｉｍｉｔのもとで与えられた目標性能ＩＰＣ＿ｔａｒｇｅｔを達成する最適化、すなわち、最適マイクロアーキテクチャの構成および評価の情報出力を行う。最適マイクロアーキテクチャ探索装置１において、逐次探索で次回の解を選択する手法は、探索結果の中から最も結果の良い（性能改善の大きい）マイクロアーキテクチャを次回の解として選択する「山登り法」を採用する。また、電力・性能の簡易計算結果と評価結果の変動量の許容誤差を、２０％とする。
【０１１１】
最適マイクロアーキテクチャ探索装置１の初期解設定部１１は、まず、図１１の設定情報３２の初期値をとるマイクロアーキテクチャ構成を探索の初期解とする。電力・性能評価装置２は、初期解のマイクロアーキテクチャ構成を入力として電力・性能評価処理を実行し、以下の電力値Ｐｏｗｅｒ、性能値ＩＰＣが得られたとする（図５：Ｓ１）。なお、以下の説明では、電力・性能の単位は任意単位とし、特に明記しない。
【０１１２】
ＩＰＣ＝０．７８０９，Ｐｏｗｅｒ＝１１．５０。
【０１１３】
近傍探索部１２は、設定情報３２において、以下のように、各要素の値を現在の解（初期解）から一段階増減した値に変更し、変更した値をとる各マイクロアーキテクチャ構成を近傍探索範囲として、電力・性能評価装置２により、電力・性能評価を行う（図５：Ｓ２）。
【０１１４】
・初期解から「整数演算ＲＳエントリ数」を８→５に変更した近傍マイクロアーキテクチャ、
・初期解から「整数演算ＲＳエントリ数」を８→１０に変更した近傍マイクロアーキテクチャ、
・初期解から「整数演算パイプライン数」を１→２に変更した近傍マイクロアーキテクチャ、
・初期解から「Ｆｌｏａｔｉｎｇ演算ＲＳエントリ数」を８→４に変更した近傍マイクロアーキテクチャ、
・初期解から「Ｆｌｏａｔｉｎｇ演算ＲＳエントリ数」を８→１０に変更した近傍マイクロアーキテクチャ、
・初期解から「Ｆｌｏａｔｉｎｇ演算パイプライン数」を２→１に変更した近傍マイクロアーキテクチャ、
（以下略）。
【０１１５】
上記の各近傍マイクロアーキテクチャの電力・性能評価結果として、図７に示すようなデータが得られたとする。図７の評価結果の性能および消費電力の括弧内の値は、現在の解の値を１００％とした場合の相対量を表している（本発明の説明のために付記した）。
【０１１６】
組合せ作成部１３は、上記の近傍アーキテクチャの構成要素の変更について、グループ情報３３に示された同一グループとならない構成要素の組み合わせを、以下のように作成してリスト化する（図５：Ｓ３）。
【０１１７】
・｛整数演算ＲＳエントリ数：８→５，
Ｆｌｏａｔｉｎｇ演算ＲＳエントリ数：８→１０，
Ｌ１キャッシュエントリ数：７→８｝
・｛Ｆｌｏａｔｉｎｇ演算パイプライン数：２→４，
Ｍｏｖｅ−ｉｎ  Ｂｕｆｆｅｒサイズ（Ｌ１⇔Ｌ２）：４→６，
メモリアクセス制御部周波数：２５０→５００｝ 
・｛Ｌ２キャッシュＷＡＹ数：１０→１２，
メモリアクセス制御部周波数：２５０→５００｝
・｛Ｆｌｏａｔｉｎｇ演算パイプライン数：２→４，
Ｌ１キャッシュエントリ数：７→８，
Ｌ２キャッシュＷＡＹ数：１０→８，
メモリアクセス制御部周波数：２５０→５００｝
（以下略）。
【０１１８】
この際、組合せ作成部１３は、例えば「Ｌ２キャッシュＷＡＹ数：１０→８」と「Ｍｏｖｅ−ｉｎ  Ｂｕｆｆｅｒサイズ（Ｌ１⇔Ｌ２）：４→６」との関係のように、グループ情報３３で同一グループに属している構成要素の変更をする組合せを除外する。なお、組合せ作成部１３は、組合せリスト作成の際に、既に説明したような組合せ数を削減する手法を用いることも可能である。
【０１１９】
電力・性能簡易計算部１４は、組合せ作成部１３が作成した各組合せによって得られる新しいマイクロアーキテクチャ（組合せマイクロアーキテクチャ）の電力・性能を、所定の簡易計算方法を用いて計算する（図５：Ｓ４）。
【０１２０】
一例として、｛整数演算パイプライン数：１→２，Ｌ２キャッシュエントリ数：１０→１１，メモリアクセス制御部周波数：２５０→５００｝の組合せで得られる組合せマイクロアーキテクチャの電力・性能の簡易計算方法を以下に示す。
【０１２１】
現在のアーキテクチャは、性能＝０．７８０９，電力＝１１．５０であり、上記の組合せアーキテクチャの各構成要素の性能および電力は、図７に示したとおりである。
【０１２２】
簡易計算では、組合せ内の各要素の変動を単純に加算するため、上記組合せマイクロアーキテクチャの性能（簡易計算性能）、電力（簡易計算電力）は、以下のようになる。
【０１２３】
簡易計算性能＝＜現在の解の値＞
＋（整数演算パイプライン数：１→２による変動）
＋（Ｌ２キャッシュエントリ数：１０→１１による変動）
＋（メモリアクセス制御部周波数：２５０→５００による変動）
＝０．７８０９＋（０．８１３０−０．７８０９）
＋（１．１１２３−０．７８０９）
＋（０．９０６２−０．７８０９）
＝１．２６９７
簡易計算電力＝１１．５０
＋（１１．７５−１１．５０）
＋（１２．２２−１１．５０）
＋（１２．３７−１１．５０）
＝１３．３４
電力・性能簡易計算部１４は、同様にして、リスト内の全ての組合せにもとづく組合せマイクロアーキテクチャについて、性能、電力を簡易計算し、その結果を探索結果に追加する。
【０１２４】
次回探索対象選択部１５は、近傍探索処理による探索結果および組合せ作成処理による探索結果の中から、各結果の性能・電力によって次の探索の解を選択する。本実施例では、山登り法を用いるため、次回探索対象選択部１５は、電力がＰ＿ｌｉｍｉｔを超えない範囲で一番性能の高い結果を得たマイクロアーキテクチャを選択する（図５：Ｓ５）。
【０１２５】
仮に、上述した簡易計算の例で用いた組合せ｛整数演算パイプライン数：１→２，Ｌ２キャッシュエントリ数：１０→１１，メモリアクセス制御部周波数：２５０→５００｝のマイクロアーキテクチャが、次の探索の解に選択されたとする。
【０１２６】
次回探索対象選択部１５は、選択されたマイクロアーキテクチャが組合せ作成処理によるものであるかを判定し（図５：Ｓ６）、選択されたマイクロアーキテクチャが組合せ作成処理によるものであれば、電力・性能再評価部１６は、電力・性能評価処理を実行する（図５：Ｓ７）。上記の組合せ｛整数演算パイプライン数：１→２，Ｌ２キャッシュエントリ数：１０→１１，メモリアクセス制御部周波数：２５０→５００｝で得られるマイクロアーキテクチャを電力・性能評価して得られた性能値および電力値が、性能＝１．２２６７、電力＝１３．２６であったとする。
【０１２７】
電力・性能再評価部１６は、簡易計算結果と評価結果の現在の解からの変動分の誤差が、規定された許容値（２０％）を超えているか、電力評価結果がＰ＿ｌｉｍｉｔを超えているかを判定する（図５：Ｓ８）。組合せ作成処理によるマイクロアーキテクチャの簡易計算結果が許容値を超えているかまたは電力評価結果がＰ＿ｌｉｍｉｔを超えている場合には、次回探索対象選択部１５は、このマイクロアーキテクチャを探索結果から削除して（図５：Ｓ９）、次回の探索の解となるマイクロアーキテクチャを再選択する（図５：Ｓ５）。
【０１２８】
今回の性能誤差は、
性能誤差（変動分）
＝（（１．２２６７−０．７８０９）−（１．２６９７−０．７８０９））／（１．２２６７−０．７８０９）
＝−０．０９６≒９．６％
であるため、許容範囲である。さらに、電力評価結果がＰ＿ｌｉｍｉｔ以内であったとする。これにより、次回探索対象選択部１５は、現在のマイクロアーキテクチャから、｛整数演算パイプライン数：１→２，Ｌ２キャッシュエントリ数：１０→１１，メモリアクセス制御部周波数：２５０→５００｝という変更を行ったマイクロアーキテクチャを、新たに「現在の解」とし（図５：Ｓ１２）、近傍探索部１２は、「現在の解」をもとに探索処理を行う（図５：Ｓ２）。
【０１２９】
図８は、一実施例の場合に、開示する最適マイクロアーキテクチャ探索装置１による処理および従来手法による処理の処理時間ならびに性能変動のグラフ例を示す図である。
【０１３０】
開示する最適マイクロアーキテクチャ探索装置１を適用した最適化システムでは、従来の最適化における探索の複数回のステップをほぼ一回分の処理時間で実行することになるため、図８のグラフに示されるように、従来手法に比べてより高速に目的の解に辿りつくことが可能となる。
【符号の説明】
【０１３１】
１  最適マイクロアーキテクチャ探索装置
１１  初期解設定部
１２  近傍探索部
１３  組合せ作成部
１４  電力・性能簡易計算部
１５  次回探索対象選択部
１６  電力・性能再評価部
１７  終了判断部
２  電力・性能評価装置
３１  制約情報
３２  設定情報
３３  グループ情報
３４  評価対象プログラム群
１０  最適マイクロアーキテクチャ探索システム
【図１】
0005888047.tif 000002
【図２】
0005888047.tif 000003
【図３】
0005888047.tif 000004
【図４】
0005888047.tif 000005
【図５】
0005888047.tif 000006
【図６】
0005888047.tif 000007
【図７】
0005888047.tif 000008
【図８】
0005888047.tif 000009
【図９】
0005888047.tif 000010
【図１０】
0005888047.tif 000011
【図１１】
0005888047.tif 000012