図面 (/)

技術 プロセッサ設計支援方法、プログラムおよび装置

出願人 富士通株式会社
発明者 川辺幸仁
出願日 2012年3月27日 (8年8ヶ月経過) 出願番号 2012-070980
公開日 2013年10月7日 (7年1ヶ月経過) 公開番号 2013-205879
状態 特許登録済
技術分野 CAD
主要キーワード 達成目的 的変動量 目標性能値 簡易計算 メモリアクセスインタフェース 消費電力上限値 組合せリスト 構成要素群
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2013年10月7日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (12)

課題

最適マイクロアーキテクチャ探索で,処理時間を抑制できるようにする。

解決手段

近傍探索部12は,現在のマイクロアーキテクチャの1つの構成要素の値を増減して得られる各変更マイクロアーキテクチャの電力・性能を評価し、第1の探索結果とする。組合せ作成部13は、変更マイクロアーキテクチャの変更した構成要素のグループ以外の各グループに属する構成要素の変更を組み合わせたリストを作成する。電力・性能簡易計算部14は、リストの各組合せ暫定電力・性能評価を、構成要素の変更が単一変更である場合の構成に対する評価の変動量をもとに計算し第2の探索結果とする。次回探索対象選択部15は、探索結果から次回の逐次探索のマイクロアーキテクチャを選択し、電力・性能再評価部16は、選択が第2の探索結果からなされた場合に、そのマイクロアーキテクチャの電力・性能を評価し、評価値許容範囲内であれば、次回の逐次探索における現在のマイクロアーキテクチャとする。

概要

背景

近年、システム高集積化に伴う電力密度低減の要求、「Energy Star(アメリカ環境保護局による電気機器省電力化プログラム)」や「省エネ法エネルギーの使用の合理化に関する法律)」といった電気機器の消費電力規制の制定などにより、LSIの低消費電力化への要求がますます厳しくなっている。そのため、LSI設計における低消費電力化技術の重要性増している。

一般的に、LSI設計では設計の上流ほど設計変更の自由度が大きく、消費電力の対策も、物理設計よりは論理設計、論理設計よりは方式設計と、設計のより上流側で行うほど効果の大きい対策を行うことが可能である。

従来手法として、設計の上流のフェーズである、演算器構成やキャッシュ構成などのマイクロアーキテクチャ(以降、「マイクロアーキテクチャ」と略す)を検討するフェーズにおいて消費電力を考慮する方法として、与えられたマイクロアーキテクチャに対して性能と消費電力を見積もるシミュレータを作成し、シミュレータの結果を活用してマイクロアーキテクチャや新規回路案の評価・検討を行うという手法が知られている。

概要

最適マイクロアーキテクチャ探索で,処理時間を抑制できるようにする。近傍探索部12は,現在のマイクロアーキテクチャの1つの構成要素の値を増減して得られる各変更マイクロアーキテクチャの電力・性能を評価し、第1の探索結果とする。組合せ作成部13は、変更マイクロアーキテクチャの変更した構成要素のグループ以外の各グループに属する構成要素の変更を組み合わせたリストを作成する。電力・性能簡易計算部14は、リストの各組合せ暫定電力・性能評価を、構成要素の変更が単一変更である場合の構成に対する評価の変動量をもとに計算し第2の探索結果とする。次回探索対象選択部15は、探索結果から次回の逐次探索のマイクロアーキテクチャを選択し、電力・性能再評価部16は、選択が第2の探索結果からなされた場合に、そのマイクロアーキテクチャの電力・性能を評価し、評価値許容範囲内であれば、次回の逐次探索における現在のマイクロアーキテクチャとする。

目的

ここで、上記の「次回探索対象選択処理」において次の解を選択するためのアルゴリズムとして、目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プロセッサの最適アーキテクチャを探索する最適マイクロアーキテクチャ探索方法であって、コンピュータが、評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理において、前記設定情報をもとに、前記現在のマイクロアーキテクチャの1つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第1の探索結果として保持し、前記マイクロアーキテクチャの構成要素を機能的なまとまり分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成し、前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、前記評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第2の探索結果として保持し、評価処理における目標および制約を示す制約情報にしたがって、前記第1の探索結果および前記第2の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する、処理を実行することを特徴とする最適マイクロアーキテクチャ探索方法。

請求項2

前記選択した次回探索の解となるマイクロアーキテクチャが、前記第2の探索結果のマイクロアーキテクチャである場合に、前記次回探索の解となるマイクロアーキテクチャの評価を取得し、該取得した評価と前記暫定評価との誤差が予め設定された許容範囲を超えるときは、該次回探索の解となるマイクロアーキテクチャの探索結果を前記第2の探索結果から削除し、前記第1の探索結果および前記削除した第2の探索結果から次回探索の解となるマイクロアーキテクチャを選択することを特徴とする請求項1に記載の最適マイクロアーキテクチャ探索方法。

請求項3

前記グループ情報は、前記マイクロアーキテクチャの構成要素の変更について組合せを禁止するグループ同士を示す情報を含むことを特徴とする請求項1または請求項2に記載の最適マイクロアーキテクチャ探索方法。

請求項4

前記制約情報は、目標性能値および消費電力上限制約値を含む情報、または、目標消費電力値および性能下限制約値を含む情報であることを特徴とする請求項1ないし請求項3に記載の最適マイクロアーキテクチャ探索方法。

請求項5

プロセッサの最適なマイクロアーキテクチャを探索する最適マイクロアーキテクチャ探索プログラムであって、コンピュータが実行する、評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理において、前記設定情報をもとに、前記現在のマイクロアーキテクチャの1つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第1の探索結果として保持し、前記マイクロアーキテクチャの構成要素を機能的なまとまりで分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成し、前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、前記評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第2の探索結果として保持し、評価処理における目標および制約を示す制約情報にしたがって、前記第1の探索結果および前記第2の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する、処理を実行させることを特徴とする最適マイクロアーキテクチャ探索プログラム。

請求項6

プロセッサの最適なマイクロアーキテクチャを探索するため、評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理を行う最適マイクロアーキテクチャ探索装置において、前記設定情報をもとに、前記現在のマイクロアーキテクチャの1つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第1の探索結果として保持する近傍探索部と、前記マイクロアーキテクチャの構成要素を機能的なまとまりで分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成する組合せ作成部と、前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、該評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第2の探索結果として保持する評価簡易計算部と、評価処理における目標および制約を示す制約情報にしたがって、前記第1の探索結果および前記第2の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する次回探索対象選択部とを備えることを特徴とする最適マイクロアーキテクチャ探索装置。

技術分野

0001

本発明は、LSIの設計支援に関するものであり、より詳しくは、例えばマイクロプロセッサの設計早期のマイクロアーキテクチャ検討段階で、電力または性能について最適なマイクロアーキテクチャ構成を評価する技術に関する。

背景技術

0002

近年、システム高集積化に伴う電力密度低減の要求、「Energy Star(アメリカ環境保護局による電気機器省電力化プログラム)」や「省エネ法エネルギーの使用の合理化に関する法律)」といった電気機器の消費電力規制の制定などにより、LSIの低消費電力化への要求がますます厳しくなっている。そのため、LSI設計における低消費電力化技術の重要性増している。

0003

一般的に、LSI設計では設計の上流ほど設計変更の自由度が大きく、消費電力の対策も、物理設計よりは論理設計、論理設計よりは方式設計と、設計のより上流側で行うほど効果の大きい対策を行うことが可能である。

0004

従来手法として、設計の上流のフェーズである、演算器構成やキャッシュ構成などのマイクロアーキテクチャ(以降、「マイクロアーキテクチャ」と略す)を検討するフェーズにおいて消費電力を考慮する方法として、与えられたマイクロアーキテクチャに対して性能と消費電力を見積もるシミュレータを作成し、シミュレータの結果を活用してマイクロアーキテクチャや新規回路案の評価・検討を行うという手法が知られている。

先行技術

0005

「Wattch: A Framework for Architectural−Level Power Analysis and Optimization (proceedings of ISCA2000)」,pp83−94

発明が解決しようとする課題

0006

マイクロアーキテクチャ検討フェーズにおいてマイクロアーキテクチャが取りうる自由度は大きく、低電力を考慮するには様々なプログラムについて電力・性能のバランスを考慮しながら各種マイクロアーキテクチャを取捨選択していく必要がある。しかし、マイクロアーキテクチャが取りうる選択の範囲は膨大になるため、上述したような電力・性能評価シミュレータを人手で実行して最適なマイクロアーキテクチャ探索を行うのは困難である。

0007

電力・性能評価シミュレータを核として、電力または性能の最適化を行う処理を考えた場合に、マイクロアーキテクチャの各要素が性能に与える影響は独立ではないことが問題となる。例えば、あるマイクロアーキテクチャで性能ボトルネックとなる要素をある程度増強すると別の要素がボトルネックになり、その性能ペナルティが元の要素のペナルティより大きい場合は逆に性能が下がることもある。また、単一の資源の場合でも資源を増やすとアクセスレイテンシが増大して逆に性能が悪化するケースもある。このように最適化のパラメータ間依存性などにより、特定の資源増強が必ずしも性能改善につながらないため、二分探索の様な探索空間全域を使った最適化は難しい。

0008

そこで、図9図11を用いて、マイクロアーキテクチャの構成要素を少しずつ変更してその時の電力・性能を評価しながら最適解を探っていくという、一般的な逐次探索による最適化手法についての問題点を検討する。

0009

図9は、一般的な、逐次探索によるマイクロアーキテクチャ最適化処理処理フロー例を示す図である。ここで、評価対象プロセッサとして、図10に示すように、命令制御部(命令デコード部)、演算器(命令処理部1、2、メモリアクセス命令処理部)、プロセッサとメモリの間の通信を制御するメモリアクセス制御部、メモリと演算部との間の記憶階層(L1キャッシュ部、L2キャッシュ部)、および、各処理部や各記憶階層の間をつなぐバッファメモリ等を持った構成を想定する。

0010

図11は、マイクロアーキテクチャの設定情報の例を示す図である。逐次探索処理において変更可能なマイクロアーキテクチャ構成要素(変数)としては、図11に示すような演算器数キャッシュサイズ、記憶階層間のバッファのサイズなどがあるものとして説明を行う。

0011

検討する逐次探索による最適化手法において、入力または出力される情報は、以下のとおりとする。

0012

入力される情報:評価対象プログラム群、制約情報、マイクロアーキテクチャの設定情報。

0013

制約情報は、達成目的制約条件を示し、例えば、消費電力上限制約目標性能値などを含む。マイクロアーキテクチャの設定情報は、プロセッサのマイクロアーキテクチャにおいて、マイクロアーキテクチャを構成する可変な要素、各要素が取り得る値、各要素の初期値を含む。

0014

出力する情報: 条件を満たす最適なマイクロアーキテクチャ構成、該構成の性能値、該構成の消費電力値

0015

検討する逐次探索による最適化手法による処理は、既知のマイクロアーキテクチャの電力・性能評価処理と連動して、近傍探索を繰り返し、与えられた制約情報を満たすマイクロアーキテクチャ構成、その電力値、性能値を含むマイクロアーキテクチャ情報を出力する。

0016

近傍探索では、以下の、初期解設定処理、近傍探索処理、次回探索対象選択処理、及び終了判断処理を行う。

0017

初期解設定処理:マイクロアーキテクチャの設定情報の初期値の構成となるマイクロアーキテクチャを現在のマイクロアーキテクチャとする。そして、現在のマイクロアーキテクチャについて、評価対象プログラム群の実行時の電力・性能を評価する。

0018

近傍探索処理:マイクロアーキテクチャの設定情報の可変な各要素を、現在のマイクロアーキテクチャから一段階増加または減少した値をとる各近傍マイクロアーキテクチャに対して電力・性能を評価し、得られた各情報<マイクロアーキテクチャ構成,電力,性能>を探索結果とする。

0019

次回探索対象選択処理: 現在のマイクロアーキテクチャおよび探索結果の各マイクロアーキテクチャの電力・性能評価をもとに、探索結果の中から次回探索対象のマイクロアーキテクチャを決定する。

0020

終了判断処理:次回探索対象のマイクロアーキテクチャが制約情報(消費電力上限制約および目標性能値)を満たす場合、または、探索結果の中から適切な次回探索対象のマイクロアーキテクチャが見つからなかった場合に、その時のマイクロアーキテクチャについての情報であるマイクロアーキテクチャ情報<最適マイクロアーキテクチャ構成,電力,性能>を出力し、処理を終了する。そうでない場合は、次回探索対象マイクロアーキテクチャを現在のマイクロアーキテクチャに設定し、上記の「近傍探索処理」から次の探索ステップを繰り返す。

0021

ここで、上記の「次回探索対象選択処理」において次の解を選択するためのアルゴリズムとして、目的とする評価値(性能,電力)が毎ステップ改善するように次の解を選択していく山登り法(hill−climbing)、焼きなまし法(simulated annealing)のように途中のステップで改悪を許しながら最適解を求めていく方法などがある。いずれの方法においても、探索を進めていく各々のステップで現在の解の近傍のマイクロアーキテクチャの電力・性能を評価し、それに基づいてその近傍マイクロアーキテクチャの中から次の解を選択するという手順をとることになる。

0022

このように、逐次探索では、近傍マイクロアーキテクチャに対する特定の評価対象プログラム群実行時の電力・性能評価処理を繰り返し大量に行う必要がある。この電力・性能評価処理は、探索アルゴリズムのその他の処理と比べて非常に時間がかかる処理であるため、従来の逐次探索による最適化手法では、その処理時間の大半をこの電力・性能評価で費やすこととなり、処理全体として非常に時間がかかるという問題がある。

0023

本発明は、上記検討した問題を解決するため、LSI設計のマイクロアーキテクチャ検討フェーズにおいて、電力・性能を考慮した最適なマイクロアーキテクチャ構成を求める処理を高速化する最適化マイクロアーキテクチャ探索技術を提供することを目的とする。

課題を解決するための手段

0024

本発明の一態様として開示する最適マイクロアーキテクチャ探索方法は、コンピュータが、評価対象のマイクロアーキテクチャについて、近傍探索において可変な値をとるマイクロアーキテクチャの構成要素、各構成要素が取りうる値の範囲を含む設定情報にもとづいて、現在のマイクロアーキテクチャから近傍探索を複数回繰り返し、探索したマイクロアーキテクチャの構成と評価とを含む探索結果を得て、該探索結果から最適なマイクロアーキテクチャの構成と評価とを出力する逐次探索処理において、1)前記設定情報をもとに、前記現在のマイクロアーキテクチャの1つの構成要素の値を一段階増減して得られる近傍マイクロアーキテクチャ各々について評価を取得し、各近傍マイクロアーキテクチャの構成および評価を第1の探索結果として保持し、2)前記マイクロアーキテクチャの構成要素を機能的なまとまり分類したグループを示すグループ情報にもとづいて、前記近傍マイクロアーキテクチャ各々について、変更した構成要素のグループ以外のグループそれぞれに属する構成要素の変更の組合せを作成し、3)前記近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの評価の変動量を求め、4)前記評価の変動量にもとづいて、前記組合せが示す組合せマイクロアーキテクチャ各々について暫定評価を計算し、該組合せマイクロアーキテクチャの構成および暫定評価を第2の探索結果として保持し、5)評価処理における目標および制約を示す制約情報にしたがって、前記第1の探索結果および前記第2の探索結果から、次回探索の解となるマイクロアーキテクチャを選択し、6)前記選択した次回探索の解となるマイクロアーキテクチャを、次回の近傍探索における現在のマイクロアーキテクチャに設定する、処理を実行するものである。

発明の効果

0025

本発明の一態様として開示する最適マイクロアーキテクチャ探索方法によれば、LSI設計のマイクロアーキテクチャ検討フェーズにおいて、電力・性能を考慮した最適なマイクロアーキテクチャ構成を求める処理を高速化することができ、もって、プロセッサ設計の短縮化支援することができる。

図面の簡単な説明

0026

開示する最適マイクロアーキテクチャ探索システムの一実施の形態におけるブロック構成例を示す図である。
本実施の形態における評価対象のマイクロアーキテクチャの例を示す図である。
マイクロアーキテクチャのグループ化例を示す図である。
グループ情報の例を示す図である。
最適マイクロアーキテクチャ探索装置概要処理の処理フロー例を示す図である。
最適マイクロアーキテクチャ探索装置のハードウェア構成例を示す図である。
近傍マイクロアーキテクチャの電力・性能評価結果の例を示す図である。
最適マイクロアーキテクチャ探索装置による処理および従来手法による処理の処理時間ならびに性能変動のグラフ例を示す図である。
一般的な逐次探索によるマイクロアーキテクチャの最適化処理フロー例を示す図である。
対象のマイクロプロセッサのマイクロアーキテクチャ例を示す図である。
マイクロアーキテクチャの設定情報の例を示す図である。

0027

以下、本発明の一態様として開示する最適マイクロアーキテクチャ探索システムについて説明する。

0028

図1は、開示する最適マイクロアーキテクチャ探索システムの一実施の形態におけるブロック構成例を示す図である。

0029

図1に示す最適マイクロアーキテクチャ探索システム10は、最適マイクロアーキテクチャ探索装置1と電力・性能評価装置2とを備え、電力・性能評価装置2による電力・性能評価を核として、電力・性能評価装置2と最適マイクロアーキテクチャ探索装置1とが連係して評価し、最適なマイクロアーキテクチャに関する情報を出力する。

0030

最適マイクロアーキテクチャ探索装置1は、電力・性能評価装置2によるマイクロアーキテクチャの電力・性能評価の際に、評価対象のマイクロアーキテクチャの構成要素を機能的な関連によりグループ化したグループ情報を用いて、逐次探索において異なるグループ毎のマイクロアーキテクチャの変更を一度に適用することによって、逐次探索の実行ステップ数を削減し、結果として電力・性能評価装置2の評価処理の回数を削減し、マイクロアーキテクチャ最適化処理を高速化することができる。

0031

あるマイクロアーキテクチャから構成する要素を変更する場合に、例えば、演算資源の増強と階層記憶(L2キャッシュ)の増強との関係のように、機能的な結びつきが強くない要素に関する変更であって、かつ、要素個々の変更の度合いがあまり大きくない場合に、それらの変更を組み合わせた時のマイクロアーキテクチャの電力・性能の変動は、要素個々の変更の効果が独立に作用したと想定した値になる場合が多い。例えば、L2キャッシュでキャッシュミスが起きるようなアドレスは、L1キャッシュのサイズを多少変更してもL1キャッシュではキャッシュミスする場合が多かったり、演算器を減らして命令実行頻度が下がっても全キャッシュミス回数は変わらずにキャッシュミスの発生頻度が下がるだけであったりという状況等が該当する。

0032

マイクロアーキテクチャの変更A、Bが独立に作用すると考えた場合に、元のマイクロアーキテクチャでの実行サイクル数をt、消費電力をpとし、そこからマイクロアーキテクチャの変更Aを加えた時の実行サイクル数および消費電力をそれぞれt1、p1とし、マイクロアーキテクチャの変更Bを加えた時の実行サイクル数および消費電力をt2、p2とする。この場合に、元のマイクロアーキテクチャに変更A及び変更Bを加えた時(変更A+変更B)の実行サイクル数t’及び消費電力p’は、変更A、Bそれぞれの変動量Δt1=t1−t、Δt2=t2−t、Δp1=p1−p、Δp2=p2−pを用いて、
t’=t+Δt1+Δt2、
p’=p+Δp1+Δp2
という計算となる。この計算は、3変数以上の場合も同様である。

0033

電力p’の場合には、実際は、エネルギー(=電力x時間)の変動が独立に加算されると考えられるが、実行サイクル数tがΔt1、Δt2と比べて十分大きいと想定すれば、上記のようなΔpの加算による計算は、十分実用的なものになる。

0034

ところで、上記のような単純計算した評価と電力・性能評価処理による実際の評価結果とがずれるようなケースとしては、例えば、性能改善の結果、変更A、Bとは無関係な別の性能ボトルネック要因が表面化した場合、変更A,Bが、マイクロアーキテクチャにおいて無視できないほど相互に影響する場合などが想定される。しかし、そうでない場合、すなわち、単純計算した評価と実際の評価結果とが近くなる場合が多い。

0035

そこで、最適マイクロアーキテクチャ探索装置1は、マイクロアーキテクチャの構成要素を、プロセッサ動作時に同じ命令フローまたはデータフローで動作するような機能的なまとまりでグループ化したグループ情報を、新たに入力に加えて使用する。機能的なまとまりを示すグループ化のなかで異なるグループにそれぞれ属する複数の構成要素に加えた変更は、マイクロアーキテクチャの評価に関して独立に作用する可能性が高いと考えられるからである。

0036

最適マイクロアーキテクチャ探索装置1は、マイクロアーキテクチャの複数グループの構成要素の変更を同時に加えたマイクロアーキテクチャ変更に対する電力・性能評価を簡易計算で求め、その結果を探索結果に加えることにより、通常の近傍探索処理に対して高速化を図っている。

0037

上記の高速化を図るべく、開示する評価支援システムの最適マイクロアーキテクチャ探索装置1は、制約情報31、設定情報32、およびグループ情報33を入力とし、評価結果としてマイクロアーキテクチャ情報<制約条件を満たす最適マイクロアーキテクチャ構成,該構成の性能値,該構成の消費電力値>を出力とする。

0038

なお、電力・性能評価装置2は、既知の評価対象プログラム群34を入力として、最適マイクロアーキテクチャ探索装置1から与えられたマイクロアーキテクチャの構成において、評価対象プログラム群34の実行時の電力および性能の評価を行う。

0039

図2は、本実施の形態における評価対象のマイクロプロセッサのマイクロアーキテクチャの例を示す図である。

0040

評価対象のマイクロプロセッサのマイクロアーキテクチャは、命令処理コア5−1、…、5−N、命令処理コア5、メモリアクセス制御部6、メモリアクセス制御部6との間に設けられたL2キャッシュ部7等を備えるものを想定する。

0041

各命令処理コア5は、命令制御を行う命令デコード部51、特定の処理を行う命令処理部52、53、メモリアクセスを行うメモリアクセス命令処理部54、メモリアクセス命令処理部54とメモリアクセス制御部6との間の階層記憶であるL1キャッシュ部55、L2キャッシュ部7、各処理部51〜54の入力/出力側に設けられるバッファ511、512、513、514、515、516等を備えるものと想定する。メモリアクセス制御部6は、メモリアクセスインタフェース(メモリアクセスI/F)61、L2キャッシュ部7との間に設けられるバッファ611、612を備えるものと想定する。

0042

制約情報31は、評価処理の目標や制限等を示す情報であり、例えば、目標性能値、消費電力上限制約値等の情報、目標消費電力値、性能下限制約値等の情報である。

0043

設定情報32は、評価対象のマイクロアーキテクチャの設定に関する情報であり、例えば、近傍探索処理において変更可能なマイクロアーキテクチャの構成要素(変数)、各構成要素が可変範囲として取り得る値、各構成要素の初期値等を含む情報である。本実施形態の説明では、設定情報32として、図11に示す情報を使用するものとする。

0044

グループ情報33は、マイクロアーキテクチャの構成要素を機能的なまとまりでグループ化したグループを示す情報である。マイクロアーキテクチャの構成要素の機能的なまとまりとは、マイクロプロセッサの動作時に、マイクロプロセッサ内の命令やデータの流れに与える影響の類似性によるまとまりを意味する。すなわち、グループ情報33の1つのグループは、1つの機能的まとまりを持つ構成要素群包含する。

0045

グループ化の一例としては、リザベーションステーションのような、命令発行のための独立した命令受付バッファをもつ1または複数の命令処理ユニット、および、1つまたは複数レベルのキャッシュ、および、主記憶からなる記憶階層を持つ計算機において、以下のようにグループ化を行う。

0046

(1)各命令受付バッファおよびそのバッファから命令発効される命令処理ユニットの構成に関するマイクロアーキテクチャ構成要素(変数)を、それぞれグループ化する。

0047

(2)各記憶階層のキャッシュメモリ、および、上位の記憶階層との間のデータ転送アクセス受付に用いられるバッファの構成に関するマイクロアーキテクチャ構成要素(変数)をまとめたものを、それぞれグループ化する。

0048

なお、階層記憶の第1階層(L1)キャッシュについては、通常の命令処理パイプラインと独立して突き離し制御でアクセスされる場合は、上記(1)に示すようにマイクロアーキテクチャの構成要素のグループ化を行うが、命令処理パイプラインに組み込まれている場合は、メモリアクセス命令処理用の受付バッファからL1キャッシュまでの間の構成要素を1つのグループとする。

0049

図3は、図2に示すマイクロアーキテクチャのグループ化例を示す図である。

0050

マイクロアーキテクチャを構成する処理部やメモリアクセス制御部等は、図3に示すように、機能的まとまりによりグループ化される。

0051

整数演算に関連する構成要素のグループ(グループ1):バッファ512、命令処理部52、
フローティング演算(floating演算)に関連する構成要素のグループ(グループ2):バッファ513、命令処理部53、
L1キャッシュに関連する構成要素のグループ(グループ3):バッファ514、メモリアクセス命令処理部54、L1キャッシュ部55、
L2キャッシュに関連する構成要素のグループ(グループ4):バッファ515、516、L2キャッシュ部7、
メモリアクセスに関連する構成要素のグループ(グループ5):バッファ611、612、メモリアクセスI/F61。

0052

図4は、グループ情報33の例を示す図である。

0053

図3に示すグループ化をした場合に、図4に示すグループ情報33が最適マイクロアーキテクチャ探索装置1に入力される。グループ情報33は、マイクロアーキテクチャの近傍探索において可変な構成要素(変数)と、構成要素が属するグループの識別番号とが対応付けられている。図4に示すグループ番号は、図3に示すグループ番号に対応している。

0054

次に、最適マイクロアーキテクチャ探索装置1の内部構成について説明する。

0055

図1に示すように、最適マイクロアーキテクチャ探索装置1は、初期解設定部11、近傍探索部12、組合せ作成部13、電力・性能簡易計算部14、次回探索対象選択部15、電力・性能再評価部16、および終了判断部17を有する。

0056

初期解設定部11は、設定情報32の初期値の構成となるマイクロアーキテクチャを現在のマイクロアーキテクチャに設定し、現在のマイクロアーキテクチャにおいて評価対象プログラム群34を実行した時の電力・性能評価を電力・性能評価装置2から得て、得られた情報<初期マイクロアーキテクチャ,電力,性能>を現在の解とする。

0057

近傍探索部12は、現在のマイクロアーキテクチャから、設定情報32の変更可能な各要素を、選択可能な範囲内で一段階増加または減少させた構成となる各マイクロアーキテクチャ(近傍マイクロアーキテクチャ)に対する電力・性能評価を、電力・性能評価装置2から得て、得られた情報<近傍マイクロアーキテクチャ,電力,性能>を探索結果とする。

0058

組合せ作成部13は、各近傍マイクロアーキテクチャについて、グループ情報33の異なるグループに属する複数の要素の変更の組合せを作成し、マイクロアーキテクチャの変更の組合せを示すリストを作成する。

0059

電力・性能簡易計算部14は、近傍マイクロアーキテクチャの構成要素の単一の変更に伴う前記現在のマイクロアーキテクチャからの電力・性能の評価の変動量を求め、組合せ作成部13が作成したリスト内の各組合せに対し、組合せ内の個々の要素が単一の変更である場合の評価(該当する変更の近傍マイクロアーキテクチャの電力・性能)についての、現在のマイクロアーキテクチャの評価(電力、性能)からの変動量をもとに、その組合せが示す要素を変更したマイクロアーキテクチャの電力、性能を簡易な式で計算し、求めた情報<組合せのマイクロアーキテクチャ,簡易計算電力,簡易計算性能>を、近傍探索部12が出力した第1の探索結果に追加する。

0060

ここで、近傍探索部12が探索したマイクロアーキテクチャ構成に対する探索結果(第1の探索結果)と、組合せ作成部13が組み合わせたマイクロアーキテクチャ構成に対する探索結果(第2の探索結果)とが区別可能に保存されるものとする。

0061

次回探索対象選択部15は、各探索結果の電力・性能をもとに次回探索対象のマイクロアーキテクチャを選択する。

0062

電力・性能再評価部16は、次回探索対象のマイクロアーキテクチャが、電力・性能簡易計算部14が追加した探索結果の中から選択された場合に、選択された次回探索対象のマイクロアーキテクチャの電力・性能評価を、電力・性能評価装置2から得る。さらに、電力・性能再評価部16は、電力・性能評価装置2から得た電力・性能と、電力・性能簡易計算部14が計算した電力・性能(簡易計算電力、簡易計算性能)との差が予め定めた許容範囲より大きい場合は、探索結果から、選択されている次回探索対象のマイクロアーキテクチャを除外し、次回探索対象選択部15に対し、次回探索対象の再選択を要求する。

0063

終了判断部17は、次回探索対象のマイクロアーキテクチャが制約情報31の消費電力上限制約および目標性能値を満たす場合、または、次回探索対象選択部15が探索結果の中から適切な次回探索対象マイクロアーキテクチャを選択しなかった場合に、その時の現在のマイクロアーキテクチャについてマイクロアーキテクチャ情報<最適マイクロアーキテクチャ,電力,性能>を出力する。

0064

図5は、最適マイクロアーキテクチャ探索装置1の概要処理の処理フロー例を示す図である。

0065

ステップS1:初期解設定部11は、設定情報32にもとづいて、逐次探索の初期解となるマイクロアーキテクチャを設定する。初期解設定部11は、各構成要素が設定情報32の初期値であるマイクロアーキテクチャ構成を初期解とする。

0066

初期解設定部11は、電力・性能評価装置2から、初期解のマイクロアーキテクチャにおける評価対象プログラム群34の実行時の電力・性能評価を取得し、得られた情報<初期解マイクロアーキテクチャ,電力,性能>を逐次探索の「現在の解」とする。

0067

ステップS2:近傍探索部12は、「現在の解」のマイクロアーキテクチャから、設定情報32の変更可能な各要素を、選択可能な値内で一段階増加または減少して得られるマイクロアーキテクチャ構成を「近傍マイクロアーキテクチャ」とみなし、全ての近傍マイクロアーキテクチャに対して、電力・性能評価装置2による電力・性能評価を得る。近傍探索部12は、得られた各情報<近傍マイクロアーキテクチャ,電力,性能>を近傍探索結果とする。

0068

ステップS3:組合せ作成部13は、ステップS2の処理で探索した単一のマイクロアーキテクチャの変更を複数組み合わせたマイクロアーキテクチャ構成の変更のリストを作成する。その際、組合せ作成部13は、グループ情報33をもとに、同一のグループに含まれる構成要素の変更は1つのみとして変更を組み合わせる。

0069

例えば、マイクロアーキテクチャ構成要素A〜Gが、グループ1={A,B}、グループ2={C,D,E}、グループ3={F,G}のようにグループ化されていたと想定する。この場合には、マイクロアーキテクチャの変更する要素が、変更1={A増,C減,F増}、変更2={B減,G増}、変更3={C増,F減}、…のように、異なるグループの要素のみを組み合わせて新しいマイクロアーキテクチャが生成されるようにする。

0070

マイクロアーキテクチャ構成の変更の組合せの作成は、グループ内で要素を選択しないことを制約とするような、全グループ間の全要素の組合せであり、既知のアルゴリズムで処理できるため、ここでは組合せの作成処理について詳細説明を省略する。

0071

なお、全ての変更の組合せを作成する場合に、組合せ数に応じて処理時間が長くなる。しかし、従来手法による電力・性能評価の処理時間は、他の処理時間と比較して圧倒的に大きいため、全組合せの作成時間分が増加しても全体の処理時間への影響は小さい。また、以下のような手法により、組合せの数を削減することも可能である。

0072

(1)例えば、次回探索対象選択処理(ステップS5)で、山登り法(hill climbing)のように、目的変数が毎回改善するものだけを選択する手法による選択処理であれば、組合せの作成の際に「目的変数が改善するものだけを組み合わせる」のような、次回探索対象選択処理での選択基準を満たすものだけを組み合わせる。

0073

(2)組み合わせる構成要素数の増加に伴い、実際の電力・性能評価と簡易計算による評価との誤差が大きくなる可能性が高くなる。そのため、組み合わせる構成要素数を制限して組み合わせる。

0074

(3)マイクロアーキテクチャの変更による最適化パラメータ(性能または電力)の増減について、その相対的変動量または絶対的変動量が、別途与える基準値より大きいものだけを選択して組み合わせる。

0075

(4)最適化が性能向上であれば、各要素を増やす変更のみを選択し、最適化が電力削減であれば、各要素を減らす変更のみを選択する。この場合には、必ずしも要素の増加/減少がそのまま性能や電力の増加/減少になるとは限らないため、必ず最適解に到達できるものではないが、ある程度高相関があるため、逐次探索のステップ数削減という効果を得ることができる。

0076

ステップS4:電力・性能簡易計算部14は、ステップS3の処理で作成したリスト内の各組合せに対し、その組合せに含まれる構成要素の変更を同時に加えたマイクロアーキテクチャ構成についての電力・性能を、その変更による電力・性能の変動が独立に作用したとみなして、所定の計算式により計算する。

0077

例えば、元のマイクロアーキテクチャでの実行サイクル数をt、消費電力をpとする。さらに、元のマイクロアーキテクチャからマイクロアーキテクチャの変更Aを加えた時の実行サイクル数および消費電力をそれぞれta、paとし、マイクロアーキテクチャの変更Bを加えた時の実行サイクル数および消費電力をtb、pbとする。

0078

元のマイクロアーキテクチャに,組合せに含まれる変更A、B、…を加えた時の実行サイクル数t’は、各変更の変動量Δta=ta−t、Δtb=tb−t、…を用いて、
t’=t+Δta+Δtb+…
と計算する。同様に、組合せに含まれる変更A、B、…を加えた時の消費電力p’は、各変更の変動量Δpa=pa−p、Δpb=pb−p、…を用いて、
p’=p+Δpa+Δpb+…
と計算する。

0079

電力・性能簡易計算部14は、得られた各情報<マイクロアーキテクチャ,暫定計算電力,暫定計算性能>を探索結果に追加する。この際に、ステップS2の処理で得た元々の探索結果(第1の探索結果)のマイクロアーキテクチャと、ステップS3の処理で生成した組合せにより追加したマイクロアーキテクチャの探索結果(第2の探索結果)とを区別可能にして保持する。

0080

ステップS5:次回探索対象選択部15は、各探索結果の電力・性能の値をもとに、探索結果の中から逐次探索の次のフェーズの基準(次探索の解)となるマイクロアーキテクチャを選択する。

0081

次回探索対象選択部15は、選択として、ステップS2の処理で得た元の探索結果とステップS3の処理で得たマイクロアーキテクチャの探索結果とを同等に扱い選択を行う方法の他、単一のマイクロアーキテクチャの変更に比べて一般的により大きく電力・性能が変動する、ステップS3の処理で得たマイクロアーキテクチャの探索結果を優先的に選択する方法をとることができる。

0082

ステップS6:次回探索対象選択部15は、「次探索の解(次回探索対象)」として選択したものが、ステップS3の処理で作成されたマイクロアーキテクチャであるかを判定する。「次探索の解」が、ステップS3の処理で作成されたマイクロアーキテクチャである場合に(ステップS6のY)、ステップS7の処理へ進み、そうでない場合に(ステップS6のN)、ステップS10の処理へ進む。

0083

ステップS7:次回探索対象選択部15は、「次探索の解」として選択したマイクロアーキテクチャに対する電力・性能の評価を、電力・性能評価装置2から得る。

0084

ステップS8:次回探索対象選択部15は、電力・性能評価装置2から得られた電力・性能と、ステップS4の処理で計算した暫定的評価(暫定計算電力、暫定計算性能)との誤差が、予め定めた許容範囲内であるかを判定する。そして、誤差が許容範囲内を超えている場合に(ステップS8のN)、ステップS9の処理へ進む。誤差が許容範囲内である場合は(ステップS8のY)、次回探索対象選択部15は、暫定値(暫定計算電力、暫定計算性能)に代えて、ステップS7の処理で得た<電力,性能>を「次探索の解」の電力・性能として、ステップS10の処理へ進む。

0085

なお、ステップS7の再評価で得られた電力・性能の値と、暫定値との誤差が大きな誤差である場合に、次回探索対象選択部15は、最適化するパラメータが改善される方向への誤差であるかを判断し、改善される方向への誤差であると判断した場合に、誤差を許容してステップS10の処理へ進めるようにしてもよい。

0086

ステップS7およびS8の処理は、ステップS3の組合せにより作成したマイクロアーキテクチャの電力・性能の評価が簡易計算による暫定値であり、確率は高くないものの実際の電力・性能がその暫定値から大きく外れている可能性があることから、電力・性能を改めて評価する必要があるからである。

0087

ステップS9:次回探索対象選択部15は、探索結果から、選択されている「次探索の解」のマイクロアーキテクチャの探索結果を保持している探索結果から削除し、ステップS5の処理へ戻る。

0088

ステップS10: 終了判断部17は、選択された「次探索の解」のマイクロアーキテクチャの電力・性能により、終了条件成立しているかを判断する。

0089

終了判断部17は、「次探索の解」が、制約情報31の消費電力上限制約および目標性能値を満たす場合、または、ステップS5の処理において探索結果の中から適切な「次探索の解」が選択されていなかった場合など、近傍探索処理を終了するための条件が成立したかどうかを判定し、終了条件が成立した場合は(ステップS10のY)、ステップS11の処理へ進み、終了条件が成立しなかった場合は(ステップS10のN)、ステップS12の処理へ進む。

0090

ステップS11: 終了判断部17は、「現在の解」のマイクロアーキテクチャの情報を、マイクロアーキテクチャ情報<最適マイクロアーキテクチャ構成,電力,性能>を出力して終了する。

0091

ステップS12: 終了判断部17は、「次探索の解」のアーキテクチャを「現在の解」のアーキテクチャとして設定し、ステップS2の処理へ戻る。なお、近傍探索部12は、「現在の解」のアーキテクチャをもとに近傍マイクロアーキテクチャを生成する。

0092

上述するように、最適マイクロアーキテクチャ探索装置1では、複数のマイクロアーキテクチャの変更を組み合わせたものを候補に組み込むことによって、本来なら複数回の逐次探索ステップとなるマイクロアーキテクチャの変更を一度の探索処理で選択可能とする処理を実現する。これにより、逐次探索での繰り返し処理のステップ数を削減して最適化処理の収束を早め、高速化を図ることができる。

0093

上述の実施の形態例では、最適マイクロアーキテクチャ探索装置1は、目標性能値、消費電力上限制約値を設定した制約情報31を入力し、上限電力制約のもとで性能値を最適化(最大化)する処理を例としている。しかし、最適マイクロアーキテクチャ探索装置1は、目標消費電力値、性能下限制約値を設定した制約情報31を入力し、同様の処理で、下限性能制約のもとで消費電力を最小化する最適化処理を行うことも可能である。さらに、最適マイクロアーキテクチャ探索装置1は、同様にして、与えられた消費電力、性能の範囲の中で単位電力当たりの性能を最大化する最適化処理を行うことも可能であり、この他にも電力と性能とを組み合わせた様々な指標を最適化する処理に適用することが可能である。

0094

また、最適マイクロアーキテクチャ探索装置1は、グループ情報33に、グループ内の定義として、他の特定のグループとの組合せを作成することを禁止する設定を設けることができるようにし、そのようなグループ情報33を入力し、組合せ作成部13は、そのようなグループ情報33にもとづいて組合せを作成する。

0095

例えば、図11に示す設定情報32、図4に示すグループ情報33が与えられ、これに新たに、命令のデコード発行、Out−of−orderの完了処理のような実行する全命令の生成・終了に関わる資源を新たに加える場合を想定する。このような資源の増減は、図4に示すグループ情報33のグループ番号1、2のグループと特に機能的な結びつきが強く、そのため、グループ番号=1、2のグループのいずれか一方に加えることはできない。グループ番号=1、2のグループを合わせて1つのグループにすることも考えられるが、ステップS3の処理で可能なマイクロアーキテクチャの変更の組み合わせを減らしてしまうことになり、全体として処理時間の増大となる。そこで、この新たに追加するマイクロアーキテクチャ資源のために、グループ情報33に、新たなグループ(例えばグループ番号=6)を定義し、グループ番号=6と、グループ番号=1、2のグループの要素とを組み合わせることを禁止する設定を設けておく。これにより、組合せ作成部13は、マイクロアーキテクチャの変更を組合せる処理において、特定のグループと関係が深いマイクロアーキテクチャの構成要素についてもグループ化にもとづいて処理することが可能となる。

0096

以上説明した最適マイクロアーキテクチャ探索装置1は、図1に示す処理部を備える専用ハードウェアとして実施することができる。

0097

また、最適マイクロアーキテクチャ探索装置1を、図1に示す処理部の機能を実現するプログラムとして実装し、図6に示すような、処理装置(CPU)101、メモリ102、記憶装置ハードディスク)103、入力装置キーボード)104、出力装置ディスプレイ)105が内部のネットワーク等で接続されたコンピュータ100上で実行することにより、実施することができる。

0098

すなわち、図1に示した初期解設定部11、近傍探索部12、組合せ作成部13、電力・性能簡易計算部14、次回探索対象選択部15、電力・性能再評価部16、終了判断部17の機能をコンピュータに実行させる実行プログラムをコンピュータ100に読み込ませ、実行させることによって,最適マイクロアーキテクチャ探索装置1を実現することができる。

0099

この場合に、コンピュータ100のCPU101が、例えば、
・ 上記の実行プログラムおよび入力となる情報(評価対象プログラム群34、設定情報32、グループ情報33を個別のファイルとしてハードディスク103に格納する。
・キーボード104から実行プログラムを起動する。この際に、制約情報31(消費電力上限,目的性能)を引数として一緒に入力する。
・ 起動された実行プログラムが、メモリ102にロードされ、必要に応じて評価対象プログラム群34、設定情報32、グループ情報33をハードディスク103からメモリ102に読み出しながら処理を進める。
・ 最後に結果をディスプレイ105に表示して終了する。
といった方法で処理を実行する。

0100

なお、実行プログラムは、CD−ROM、CD−RW、DVD−R、DVD−RAM、DVD−RW等やフレキシブルディスク等の記録媒体だけでなく、通信回線の先に備えられた他の記憶装置やコンピュータのハードディスク等に記憶されるものであってもよい。

0101

また、最適マイクロアーキテクチャ探索装置1を構成する要素は、任意の組合せで実現されてもよい。複数の構成要素が1つの部材として実現されてもよく、1つの構成要素が複数の部材から構成されてもよい。また、最適マイクロアーキテクチャ探索装置1は、上述した実施形態に限定されず、本発明の要旨を逸脱しない範囲において各種の改良および変更を行ってもよいことは当然である。

0102

次に、最適マイクロアーキテクチャ探索装置1の効果を説明する。

0103

最適マイクロアーキテクチャ探索装置1において、例えば、L個の近傍マイクロアーキテクチャの変更を組み合わせたマイクロアーキテクチャについての選択をする探索フェーズをM回繰り返してマイクロアーキテクチャXに到達したと想定する。「現在の解」の近傍マイクロアーキテクチャの数をNと想定する。

0104

本発明に係る最適マイクロアーキテクチャ探索装置1を適用せず、従来手法により最適マイクロアーキテクチャを探索する場合に、「現在の解」からマイクロアーキテクチャXに到達するまでに、これ以降L*M回の近傍探索が必要となり、その各回の処理においてN個の近傍の探索を行う。そのため、その間に(L*M)*(N−1)回の電力・性能の評価が必要となる(N個の近傍のうち1個は直前の探索の解であって、電力・性能は評価済みであるため、各回の電力性能評価はN−1回となる)。

0105

これに対し、最適マイクロアーキテクチャ探索装置1によれば、探索フェーズはM回であるため、電力・性能の評価の回数は、電力・性能再評価部16による「電力・性能再評価処理(ステップS4)」の1回を加えて、M*(N+1)回で済むことになる。全最適化処理において電力・性能評価の処理時間が支配的であるため、開示した最適マイクロアーキテクチャ探索装置1を適用することにより、最適化処理全体の処理時間が短縮されることになる。ここで、Nが十分大きい場合は、約1/Lとなる。

0106

また、組合せ作成部13による処理(ステップS3)で生成されて探索結果に加えられるマイクロアーキテクチャの構成は、複数の変更を組み合わせたものであるため、単一の変更である元の探索結果と比較して電力・性能の変動量が大きいものが含まれている可能性が高い。このため、元の探索結果と比べて、次回探索対象選択部15による処理(ステップS5)において次回探索対象として選択される確率が高い。さらに、上述したように、電力・性能簡易計算部14により計算される、組合せによるマイクロアーキテクチャの暫定的な電力・性能値は、実際に評価した電力・性能と近い値である可能性が高いため、電力・性能再評価部16の処理(ステップS7)で選択されたマイクロアーキテクチャが棄却される可能性は低い。

0107

以上のことからも、最適マイクロアーキテクチャ探索装置1による最適マイクロアーキテクチャ探索処理において、時間短縮効果が得られる可能性は高いということがわかる。

0108

以下に、開示する最適マイクロアーキテクチャ探索装置1の一実施例として、図3に示すような構成のマイクロプロセッサにおいて、図11に示す設定情報32および図4に示すグループ情報33を入力として与えられ、制約情報31に示される電力上限制約のもとで性能の最大化を行う場合を説明する。

0109

ここで、電力・性能評価装置2が出力する性能値は、IPC(instructions per clock:クロックサイクル当たり実行命令)で表すこととし、複数の評価対象プログラム群34を実行して得られる複数の電力値・性能値が、評価後に幾何平均等により代表値である1つの電力値・性能値に変換されるものとする。

0110

最適マイクロアーキテクチャ探索装置1は、消費電力上限値P_limitのもとで与えられた目標性能IPC_targetを達成する最適化、すなわち、最適マイクロアーキテクチャの構成および評価の情報出力を行う。最適マイクロアーキテクチャ探索装置1において、逐次探索で次回の解を選択する手法は、探索結果の中から最も結果の良い(性能改善の大きい)マイクロアーキテクチャを次回の解として選択する「山登り法」を採用する。また、電力・性能の簡易計算結果と評価結果の変動量の許容誤差を、20%とする。

0111

最適マイクロアーキテクチャ探索装置1の初期解設定部11は、まず、図11の設定情報32の初期値をとるマイクロアーキテクチャ構成を探索の初期解とする。電力・性能評価装置2は、初期解のマイクロアーキテクチャ構成を入力として電力・性能評価処理を実行し、以下の電力値Power、性能値IPCが得られたとする(図5:S1)。なお、以下の説明では、電力・性能の単位は任意単位とし、特に明記しない。

0112

IPC=0.7809,Power=11.50。

0113

近傍探索部12は、設定情報32において、以下のように、各要素の値を現在の解(初期解)から一段階増減した値に変更し、変更した値をとる各マイクロアーキテクチャ構成を近傍探索範囲として、電力・性能評価装置2により、電力・性能評価を行う(図5:S2)。

0114

・初期解から「整数演算RSエントリ数」を8→5に変更した近傍マイクロアーキテクチャ、
・初期解から「整数演算RSエントリ数」を8→10に変更した近傍マイクロアーキテクチャ、
・初期解から「整数演算パイプライン数」を1→2に変更した近傍マイクロアーキテクチャ、
・初期解から「Floating演算RSエントリ数」を8→4に変更した近傍マイクロアーキテクチャ、
・初期解から「Floating演算RSエントリ数」を8→10に変更した近傍マイクロアーキテクチャ、
・初期解から「Floating演算パイプライン数」を2→1に変更した近傍マイクロアーキテクチャ、
(以下略)。

0115

上記の各近傍マイクロアーキテクチャの電力・性能評価結果として、図7に示すようなデータが得られたとする。図7の評価結果の性能および消費電力の括弧内の値は、現在の解の値を100%とした場合の相対量を表している(本発明の説明のために付記した)。

0116

組合せ作成部13は、上記の近傍アーキテクチャの構成要素の変更について、グループ情報33に示された同一グループとならない構成要素の組み合わせを、以下のように作成してリスト化する(図5:S3)。

0117

・{整数演算RSエントリ数:8→5,
Floating演算RSエントリ数:8→10,
L1キャッシュエントリ数:7→8}
・{Floating演算パイプライン数:2→4,
Move−in Bufferサイズ(L1⇔L2):4→6,
メモリアクセス制御部周波数:250→500}
・{L2キャッシュWAY数:10→12,
メモリアクセス制御部周波数:250→500}
・{Floating演算パイプライン数:2→4,
L1キャッシュエントリ数:7→8,
L2キャッシュWAY数:10→8,
メモリアクセス制御部周波数:250→500}
(以下略)。

0118

この際、組合せ作成部13は、例えば「L2キャッシュWAY数:10→8」と「Move−in Bufferサイズ(L1⇔L2):4→6」との関係のように、グループ情報33で同一グループに属している構成要素の変更をする組合せを除外する。なお、組合せ作成部13は、組合せリスト作成の際に、既に説明したような組合せ数を削減する手法を用いることも可能である。

0119

電力・性能簡易計算部14は、組合せ作成部13が作成した各組合せによって得られる新しいマイクロアーキテクチャ(組合せマイクロアーキテクチャ)の電力・性能を、所定の簡易計算方法を用いて計算する(図5:S4)。

0120

一例として、{整数演算パイプライン数:1→2,L2キャッシュエントリ数:10→11,メモリアクセス制御部周波数:250→500}の組合せで得られる組合せマイクロアーキテクチャの電力・性能の簡易計算方法を以下に示す。

0121

現在のアーキテクチャは、性能=0.7809,電力=11.50であり、上記の組合せアーキテクチャの各構成要素の性能および電力は、図7に示したとおりである。

0122

簡易計算では、組合せ内の各要素の変動を単純に加算するため、上記組合せマイクロアーキテクチャの性能(簡易計算性能)、電力(簡易計算電力)は、以下のようになる。

0123

簡易計算性能=<現在の解の値>
+(整数演算パイプライン数:1→2による変動)
+(L2キャッシュエントリ数:10→11による変動)
+(メモリアクセス制御部周波数:250→500による変動)
=0.7809+(0.8130−0.7809)
+(1.1123−0.7809)
+(0.9062−0.7809)
=1.2697
簡易計算電力=11.50
+(11.75−11.50)
+(12.22−11.50)
+(12.37−11.50)
=13.34
電力・性能簡易計算部14は、同様にして、リスト内の全ての組合せにもとづく組合せマイクロアーキテクチャについて、性能、電力を簡易計算し、その結果を探索結果に追加する。

0124

次回探索対象選択部15は、近傍探索処理による探索結果および組合せ作成処理による探索結果の中から、各結果の性能・電力によって次の探索の解を選択する。本実施例では、山登り法を用いるため、次回探索対象選択部15は、電力がP_limitを超えない範囲で一番性能の高い結果を得たマイクロアーキテクチャを選択する(図5:S5)。

0125

仮に、上述した簡易計算の例で用いた組合せ{整数演算パイプライン数:1→2,L2キャッシュエントリ数:10→11,メモリアクセス制御部周波数:250→500}のマイクロアーキテクチャが、次の探索の解に選択されたとする。

0126

次回探索対象選択部15は、選択されたマイクロアーキテクチャが組合せ作成処理によるものであるかを判定し(図5:S6)、選択されたマイクロアーキテクチャが組合せ作成処理によるものであれば、電力・性能再評価部16は、電力・性能評価処理を実行する(図5:S7)。上記の組合せ{整数演算パイプライン数:1→2,L2キャッシュエントリ数:10→11,メモリアクセス制御部周波数:250→500}で得られるマイクロアーキテクチャを電力・性能評価して得られた性能値および電力値が、性能=1.2267、電力=13.26であったとする。

0127

電力・性能再評価部16は、簡易計算結果と評価結果の現在の解からの変動分の誤差が、規定された許容値(20%)を超えているか、電力評価結果がP_limitを超えているかを判定する(図5:S8)。組合せ作成処理によるマイクロアーキテクチャの簡易計算結果が許容値を超えているかまたは電力評価結果がP_limitを超えている場合には、次回探索対象選択部15は、このマイクロアーキテクチャを探索結果から削除して(図5:S9)、次回の探索の解となるマイクロアーキテクチャを再選択する(図5:S5)。

0128

今回の性能誤差は、
性能誤差(変動分)
=((1.2267−0.7809)−(1.2697−0.7809))/(1.2267−0.7809)
=−0.096≒9.6%
であるため、許容範囲である。さらに、電力評価結果がP_limit以内であったとする。これにより、次回探索対象選択部15は、現在のマイクロアーキテクチャから、{整数演算パイプライン数:1→2,L2キャッシュエントリ数:10→11,メモリアクセス制御部周波数:250→500}という変更を行ったマイクロアーキテクチャを、新たに「現在の解」とし(図5:S12)、近傍探索部12は、「現在の解」をもとに探索処理を行う(図5:S2)。

0129

図8は、一実施例の場合に、開示する最適マイクロアーキテクチャ探索装置1による処理および従来手法による処理の処理時間ならびに性能変動のグラフ例を示す図である。

実施例

0130

開示する最適マイクロアーキテクチャ探索装置1を適用した最適化システムでは、従来の最適化における探索の複数回のステップをほぼ一回分の処理時間で実行することになるため、図8のグラフに示されるように、従来手法に比べてより高速に目的の解に辿りつくことが可能となる。

0131

1 最適マイクロアーキテクチャ探索装置
11初期解設定部
12近傍探索部
13組合せ作成部
14電力・性能簡易計算部
15次回探索対象選択部
16 電力・性能再評価部
17 終了判断部
2 電力・性能評価装置
31制約情報
32設定情報
33グループ情報
34評価対象プログラム群
10 最適マイクロアーキテクチャ探索システム

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ