異なったプロセッサ間の性能を相対比較するベンチマークは、設計の生産性を高めるためのツールとも言える。それら自体では技術的な問題を解決しないが、プロジェクトに最適なプロセッサを選択する時間を大幅に短縮させることができるからだ。すなわち、理想的な世界における標準的なベンチマークとは、複数のリンゴを見比べて一番おいしそうなものを選ぶような感覚で、プロセッサを迅速かつ正確に比較する手段を提供するものである。組み込みプロセッサのベンチマークは、リンゴを選ぶように簡単・迅速に、あらゆるアプリケーションやプロセッサ・アーキテクチャを包括する手法を提供することが難しい。現在、複数の組織が、プロセッサ性能のベンチマークに加え、プロセッサの消費電力とエネルギー効率を有意義に記述、比較する方法を研究している。
プロセッサの性能に関するベンチマークは従来からあったが、ある一定時間内にプロセッサがどれだけの処理を行うかに焦点を置いているだけで、その性能に達するための電力効率や費用については軽視してきた。ある設計やアプリケーションを実装し、どのようにシステムが実行されるかを明らかにするためには、どんなデータが必要か。それを理解することは、ベンチマークを使用する個人の能力に頼っていた *1)。マーケティング資料では1秒間に実行する命令数という総合的なプロセッサの性能データを引用しているが、このようなデータは、プロセッサが特別な状況の下でどのような性能を持つかというような情報を提供してはくれない。従って、設計者にとってはあまり役に立つ情報とは言えない。
米Berkeley Design Technology社(以下、BDT社)、米EDN Embedded Microprocessor Benchmark Consortium(以下、EEMBC)、米Standard Performance Evaluation Corp(SPEC)などのベンチマーク評価サービスを提供する組織は、プロセッサが特定のアプリケーションを実行する際の性能が分かる、一連のベンチマークをサポートしている。BDT社とEEMBCの研究者は現在、特定のアプリケーションを実行するときのプロセッサのエネルギー効率(消費電力ではなく)を測定し、比較できるよう、ベンチマークを拡張している。この目的は、FFTのような単一機能の実行効率を測定することだけではなく、オーディオやビデオ・デコーダという、より高レベルでの作業性能を特徴付けることにある。
| Advertisement |
|
|
エネルギー効率などのベンチマーク
エネルギー効率のベンチマークを定義し実行することは、プロセッサ性能のベンチマークを作成するよりもはるかに難しい。性能のベンチマークは現在、プロセッサの最大処理能力に焦点を合わせたものとなっている。これは、プロセッサがいくつかの機能セットの実行に必要な処理能力を、開発者が判断するときに有効である。とりわけ性能要求条件を満たすプロセッサの候補が限られているプロジェクトでは有効だ。しかし、与えられた性能のしきい値を満たすプロセッサの数が増えるに従い、電力消費かエネルギー効率がプロセッサ間のオプションを比べるものとして重要になる。
従来、プロセッサの電力消費は動作時におけるシステム全体の電力消費のごくわずかな割合を占めるにすぎなかった。しかし最近では、大きな画像を処理するなど、必要な計算処理能力が指数的に増大してきており、プロセッサのエネルギー効率の向上に対する要求もますます増えつつある。コンピュータでの使用増に加えて、最近、プロセッサの用途の一例として増えているのが、家庭内での在宅患者を対象とした医療機器、例えば、衣服につけたり体に埋め込んだりして使用する健康状態監視装置などである。このような機器は、やむを得ず小型のバッテリーにしなければならない。そしてできるだけ何年間も長期にわたり動作を維持しなければならない。
消費電力とは、静的消費電力と動的消費電力の和である。通常の動作条件下では、静的消費電力より、動的消費電力が圧倒的に大きい。しかしながら、長い休止状態やスタンバイ状態を挟みながら動作するものに適用する場合、電池の寿命を決めるのは、静的消費電力である。この静的消費電力の大部分を占めるのが、トランジスタのリーク電流である。トランジスタのリーク電流は、ゲート絶縁膜厚が薄くなるに従い、指数関数的に増大する。つまり、トランジスタが小型化されると、ますますリーク電流は増加する。アプリケーションの開発者が動的消費電力を抑えられるように、プロセッサの設計者は、静的消費電力を最小限に抑えるさまざまな技術を導入している*2)。静的消費電力を最小化する技術には、クリティカルパスではない回路に低速のトランジスタを使用する方法、高速でリーク電流が大きいトランジスタの動的な停止、およびトランジスタ基板バイアスの動的な制御、という方法がある。
プロセッサの動的消費電力は「P=CFV2」という式で表される。Cは動的容量成分、Fはクロック周波数またはスイッチング周波数、そしてVは供給電圧である。一般にプロセッサの設計者は電力管理技術を使用している。これによってアプリケーション開発者は、低消費電力モードでの動作や周波数スケーリング、電圧のスケーリングなど、動的消費電力の最小化を図ることが可能となる。
ベンチマークの複雑さは増大する
特定アプリケーション向けソフトウエアとプロセッサのリソースを、システムがどのように使用しているかによって、プロセッサのエネルギー効率は劇的に変化する。そしてこの事実が、特定用途のタスク実行時におけるエネルギー効率の定義や測定、ベンチマークを著しく複雑なものにしている(p.44の囲み記事「直観的でないエネルギー効率」参照)。公的に利用可能な参照コードで、ベンチマーク評価を行うのは現実的ではない。第1に、開発者は参照コードをそのままの形で使用することはない。というのも対象とするプロセッサはアーキテクチャやリソース、何らかの特定用途向けアクセラレータに基づいてある程度の最適化を行っているからである。
最適化されていない参照コードを使用する不合理さは、性能のベンチマークの不合理さにもつながる。しかし、EEMBCのベンチマークなどのように最適化で最高の性能を得るためにはメモリーとプロセッサ・リソースの非現実的な使用も含まれてくる可能性もある。電力のベンチマークは、開発者が参照コードを最適化する際、エネルギー消費と、「十分に良い」性能をコードから得ることとの間にバランスが取れている事実を説明できなければならない。パフォーマンスのベンチマークは、この必要性を現状では無視している。
従って、単一のプロセッサに対する性能値の全体にまたがって有効な電力ベンチマークを得るためには、異なったアルゴリズム、ソフトウエアコード、およびオンチップリソースを意識した上で用いることになる。これは、同じデバイスを異なった性能の値で、リンゴを選ぶときのように簡単に比較するだけではなく、異なるプロセッサ・アーキテクチャを比較する設計者の能力に大きな影響を与える。しかし、このシナリオは非現実的である。なぜならベンチマークは、設計者が異なったアーキテクチャや構成を持ったプロセッサの中から最適なプロセッサを選択し、さらにトレードオフの決定をより迅速に行うための開発生産性向上ツールだからである。
妥協点は、複数の性能値、クロック周波数、電圧にまたがって同じ最適化されたコードを実行することだ。これはプロセッサベンダーが電力のベンチマークを適用する際に、最適化したコードの目標を性能の最適値とすべきであることを意味する。ベンチマークのデータは最適値とその付近で最も妥当性が高く、性能値が最適値から外れるに従い、妥当性が薄れる。そのためプロセッサベンダーは対象とした性能の最適値を明確にしておく必要がある。ただこの問題は標準的な性能のしきい値を用いて特定アプリケーション向けのベンチマーク評価を行う場合には、あまり重要ではない。
さらなるチャレンジ
EEMBCの会長であるMarkus Levy氏は「ベンチマークスイートをハードウエア上で動作させることは簡単だが、エネルギー消費を測定することは難しい。対照的に、IP*コアのエネルギー消費を測定することは簡単だが、それらの上でベンチマークスイートを動作させることは難しい」と述べている。つまり、EEMBCのベンチマークはハードウエア上ではプロセッサ速度で実行できるが、IPコア用のゲートレベルのネットリストを用いたシミュレーションでは、数日間もかかるという事実を示している。その上、測定装置をハードウエアのどこにつければよいのか、どのシステム・サブコンポーネントまで測定に含めるべきか、測定をいつ始めていつ終わらせるべきかなど、はっきりしないことがある。IPコアをシミュレートする際は、どこででも、比較的容易にシミュレーション装置を備えてデータを集めることができる。
エネルギー効率を測定し、それを性能値と相関付ける一貫性のある手法をどのように定義し、適用するかは、明確になっていない。現在、BDT社とEEMBCは、テストの構成方法が適切に開示されることを前提として、作業負荷に対するコアメモリーとローカルメモリーが十分かどうかを評価することを提案している。
テストの構成を開示することは重要だ。理由は、たとえアクセラレータ内蔵あるいは大規模メモリー搭載のプロセッサが、システム全体のエネルギー消費を低くすることができたとしても、そのプロセッサは、ベンダーがベンチマークしたメモリーやアクセラレータを内蔵していないプロセッサよりもエネルギー効率が劣って見える可能性があるからだ。ベンチマーク評価の対象が異なったプロセス構造やライブラリである場合、IPコアのエネルギー効率を比較することは難しい。BDT社とEEMBCは一貫したプロセスとライブラリのセットを適用するため、妥協案を採用している。両組織では、時とともに電力ベンチマーク評価プロセスが改良され、洗練化されていくことを期待している。
もう1つの問題は、プロセッサベンダーの評価ボードが電力測定機能を搭載していない場合があることである。一般に低消費電力での適用を目的とする半導体用評価ボードのメーカーは、電力測定用のアクセスポイントを用意しており、プロセッサ上の各チップとサブシステムに対して電源線を別々に設けている。CPUコアとL1キャッシュのために1本、I/O端子のために1本、そして半導体上のそのほかすべての要素に対してもう1本というように、電源とアクセスポイントは分離して配線されている。電源を分離していないボードは計測とベンチマークのプロセスが複雑になる。
ベンチマーク実行時のエネルギー測定EEMBCのプロセスによれば、各テストの対象となる半導体は、温度設備や測定装置を含め、すべて同じ条件の下で動作させなければならない。設計者は、プロセッサの動作が安定したレベルに達していることを保証するため、テストを複数回、行う必要がある。誤測定を避けるため、電力のサンプリングには、無作為かつ複数間隔でのスマートサンプリング方法を使用する。テストは静的消費電力の影響を考慮に入れていないが、構成の一部として冷却方法とクロック周波数をベンダーは開示しなければならない。測定結果は繰り返し行われたテストの平均エネルギーであり、設計者はそれと性能のベンチマークとの相関を取る。
IPコアのベンチマーク評価を行うためのEEMBCのベンチマーク手順は、どのHDLシミュレータを使用しても、ゲートレベルのネットリストを使用する(図1)。終了までに数日かかってシミュレーションから出力されたSAIFファイルを、ネットリストやテクニカル・ライブラリ、寄生素子モデルとともに、米Synopsys社の「PrimePower」に入力する。処理結果は、電力の波形図とレポートの形で出力される。この方法は現在、IPコアが中心であり、性能ベンチマークに関与するキャッシュのみを含んでいる。エネルギーのベンチマークは絶対値を評価するものではなく、ベンチマークの値を比較するときのエネルギー効率の相対的指標として使用される。
そのほかのツール
設計者であれば、どのベンチマークのデータがプロジェクトの特殊性に適合して利用できるか、対応づけられるかを評価、検討しなければならない。これはベンチマークを実行する際に極めて重要なことである。プロセッサベンダーは最近まで、消費電力とエネルギー消費を解析するツールとして、表計算ソフトを提供してきた(図2)。これらの表計算ソフトは、対象とするプロセッサがサポートする低消費電力モードや周波数、電圧スケーリングのような電力管理機能に依存するため、複雑に変化する。なぜなら、低電力モードやスケーリング機能を使用すると複雑になることがあるからだ。これらの表計算ソフトは、設計者が異なったハードウエア、ソフトウエア構成を採用した場合、エネルギー消費にどんな影響が出るかを確実に追求してきた。
半導体が低電力モードになるように、デューティサイクル上でアルゴリズムを全速力で実行すべきか、またはより低速のクロック周波数で同じもしくは同等のアルゴリズムを連続して実行すべきかを判断すること。これは電力消費設計のトレードオフの例である(図3)。表計算ソフトは、低消費電力モード中の静的消費電力やシステムの待ち合わせ時間、モード切り替えのためのエネルギーコスト、および各手法における全エネルギー消費のような明白ではない原因を特定するのに役立つ。これらの表計算ソフトの個別に固定されたフォーマットは、サポートするシステムの解析を単純化することはないが、動的周波数や電圧スケーリングから電力効率を抽出するのに有効である。これらの表計算ソフトにより、現在、設計者は動的挙動に対する静的平均電力を見積もることが可能になっている。
電力設計や解析、最適化のツールは、表計算ソフトを超えるものになりつつある。例えば、米Texas Instruments社は、起動時の電力低減を図り、プロセッサ・リソースのよりインテリジェントなスケジューリングを実行し、電力スケーリングを管理、制御する「DSP/BIOS」というパワーマネジャーを販売している。米Altera社の「Quartus II」というツールは現在、電力解析および最適化ツールを備えている。英ARM社のIEM*技術は、ハードウエアとソフトウエアから構成されており、プロセッサの作業負荷とエネルギー消費のバランスを取ることができる。米PowerEscape社のツールは、データを移動するためにソフトウエアがいかに効率的にプロセッサ―メモリー・アーキテクチャで実行するかを確認することを支援する。この機能は、コンテクスト・スイッチングやキャッシュミスのような事象から、メモリーの電力効率に対する開発者の関心が高まっていることに注目して開発されたものである。この型のツールはバースト指向のメモリーの長所を利用してデータを構造化し、隣接した複数のブロックにデータを配置し、アクセスすることで開発者を支援する。そのほかのキャッシュ解析ツールは現在、エネルギー効率の観点からというよりむしろ、処理能力の観点からキャッシュの挙動を評価することを開発者に強いている。
標準的な電力やエネルギー効率のベンチマークの注目度は高まっている。特に似たようなコアアーキテクチャを持つプロセッサの数が急増しているため、電力ベンチマークの重要性は今後も高まっていくだろう。しかし、ベンチマークのデータをマッピングし、プロジェクトの要求する構成をテストする際には、電力のベンチマークも、開発者は十分な注意を払わなければならない。
|