II-27-2. MPUの性能最適化

MPUの性能を最適化する上で留意すべき項目は何かを説明する。また、MPUの性能評価に用いるEmbedded Microprocessor Benchmark Consortium(EEMBC)やオープンソースのベンチマークについて解説する。

【学習の要点】

* ノイマン・ボトルネックに対して、データ転送時間の短縮のために、高速のメモリデバイスを使う、キャッシュメモリを使う、システムバス幅を拡大するなどの措置をとる。

* Embedded Microprocessor Benchmark Consortium(EEMBC)は組み込みベンチマークソフトウェアの標準として扱われるようになっている。

* MediaBenchなど、オープンソースのベンチマークソフトウェアも存在する。オープンソースであるがゆえ、ベンチマークの設計に特定の団体個人の意図が入りづらいという特徴を持つ。

図II-27-2. ノイマン・ボトルネック

【解説】

1) MPUの高速化とノイマン・ボトルネック

* ノイマン型コンピュータでは、メインメモリにデータを置いてMPUで必要に応じて読み出して計算するため、MPUの高速化にメモリ周辺のシステムの速度が対応出来ない場合、性能的なボトルネックとなる。これを特にノイマン・ボトルネックと呼ぶ。

* ノイマン・ボトルネックの解消は、半導体の中と外の通信速度を揃えることであり、現実的に難しい。ノイマン・ボトルネックの緩和に以下の措置がとられる。

- 高速なメモリデバイスの利用

- MPUとメインメモリの間にキャッシュメモリを置く

- システムバス(MPUとチップセットの間のバス)、メモリバスの高速化

2) Embedded Microprocessor Benchmark Consortium(EEMBC)

EEMBCは、1997年の発足以来、参加企業数を50社以上に増やし、組み込みシステムにおけるベンチマークソフトウェアとして標準として扱われるようになっている。(Ⅰ-27-8参照)

* EEMBCは、自動車・産業機器、コンシューマ向け機器、Java ME、ネットワーク機器、OA機器、通信機器という6つの具体的な分野に照準を定めた実践的な指標である。

* Java ME用のプログラムは特にJava GrinderBenchとして公開されている。GrinderBenchは6種類の組み込みJavaで頻繁に使われる種類のプログラムをベンチマークとして採用している。具体的な内容は以下の通りである。

- コンピュータ同士によるチェスの対戦

- DES, Blowfishなどの暗号化、復号化

- XMLの構文解析

- 配列データに対するソートなどの並列処理

- PNG画像のデコード

- 正規表現によるパターンマッチング

3) MediaBenchII

* MediaBenchII (http://euler.slu.edu/~fritts/mediabench/)はUniversity of California Los Angels校(UCLA)で開発されたオープンソースのベンチマークソフトウェアであり、メディア処理を中心に構成されている。

* オープンソースのベンチマークソフトウェアであるため、特定の個人や団体に有利な操作がされにくいという特徴を持つ。

* MediaBenchIIは定期的な更新を通して、メディア産業の状況をベンチマークに反映させるようにするポリシーで運営されている。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。