プロセッサの性能評価方法まとめ
概要
適切なプロセッサを採用するためにはニーズに合わせて正しく性能を評価する必要がある。本記事では、プロセッサを評価する際に使われる一般的な評価基準をまとめている。
動機
コンピュータアーキテクチャの本を読んで、評価基準をいろいろ知ったのでまとめたかった。
内容
コンピュータの最も一般的で大きなくくりとしての評価基準は、コスパ、性能、消費電力が代表的。
コスパ ->最も感覚的でわかりやすく、妥当な評価基準。コスパは高ければ高いほど良い。
性能 ー>プロセッサの性能が高いのか低いのか。一般的には一定時間に処理される作業量であるスループットや、一つの作業にかかる時間である応答時間を見て評価する。これらを評価する評価基準はいくつか存在する。
・クロック周波数
プロセッサは一定のクロックに同期して処理をしている。1クロックの時間をクロックサイクル時間と呼び、これをT(s)とすれば、クロック周波数F(Hz)はその逆数となる。
・CPI (Clocks Per Instruction)
命令実行に必要なクロックサイクル数の平均値。この値が小さいということはより少ないサイクル数で命令を実行できるということであるが、命令にかけるクロック数を減らすと命令数自体が増えるので、結局は命令数とトレードオフの関係にある。
プログラムの実行時間が分かっていれば、CPIを計算することができる。
プログラム実行時間をS(s) , 命令数を n(個) , クロック周波数をf(Hz) とすると
ここで、
であるから、CPIについて解いて
で計算できる。
上記の計算式より、CPUの性能向上にはクロック周波数fを上げる、CPIを下げる、命令数を減らす、などが考えられるが、CPIと命令数を同時に下げることは不可能なのでよい塩梅でそろえてやることが大切。
なお、近年のマシン性能向上によりCPIは小さな値となってきており、比較用の値としてはわかりやすさに欠けるので、その逆数をとったIPC(Instructions Per Clock)が使われることもある。
・MIPS
1秒間当たりの命令実行数を百万単位(10^6)単位であらわしたもの。
感覚的に理解しやすい指標ではあるが、実行するプログラムや最適化(例えば複数の命令を1サイクルにまとめるとか)の影響を受けやすい。そのためMIPS値の増加が、必ずしもプロセッサの性能の向上を表すとは限らない。また、そもそも命令セットが異なる場合には指標として使い物にならない。(命令数が大きく異なるため)
・MFLOPS
1秒間当たりの浮動小数点演算の実行可能回数を100万単位で表したもの。スーパーコンピュータの性能比較にもたびたび利用される。プログラムを実行して測定された実測のMFLOPS値は実行性能と呼ばれる。また、100万単位で表すMFLOPSのほかに、10億単位で表すGFLOPS、1兆単位のTFLOPS、1000兆単位のPFLOPSなども使われることがある。
消費電力 ->特に携帯電話やノートパソコンのように、電池持ちが重要なマシンではこの値も重要視される。加えて、一般に消費電力が増えると発熱量も増えるため、デスクトップ向けのプロセッサでも無視できない値である。
コンピュータには動的な消費電力と静的な消費電力がある。前者はトランジスタのスイッチングに利用され、後者はCMOSゲートからリークする電力である。
スイッチングに利用される動的な消費電力は、消費電力P、負荷容量C、電源電圧V、周波数f、出力がスイッチを伴う割合aを用いて一般に以下のように与えられる。
上記の式より、クロック周波数、電源電圧、スイッチの割合を減らすことで消費電力が減少することがわかる。
まとめ
クロック周波数、CPI 、MIPS 、MFLOPSなどから性能が計算、比較できる。
また、電圧やスイッチの変更割合、クロック周波数などが分かっていれば、そこから消費電力を計算することもできる。消費電力の低さから性能が比較できる。
その他、コスパが比較要素として重要なのは言うまでもないだろう。