CPI

読み:しーぴーあい / 英語表記:Cycles Per Instruction

1つの命令を実行するのに必要な、CPUのクロックの数(サイクル数)。プログラムの実行時間は、命令数 × 平均CPI ÷ クロック周波数 で求められる。

イマシルちゃんの解説

CPUは、心臓の鼓動みたいに、一定のリズムで動いているんだ。

かんたんな命令なら、2拍くらいで終わるけど、
むずかしい計算の命令は、5拍もかかったりするんだよ。
1つの命令に何拍かかるかがわかれば、プログラム全部を動かすのに、どれくらい時間がかかるかを計算できるんだ。

より深い解説

定義

CPI(Cycles Per Instruction)は、1命令あたりの平均クロックサイクル数である。クロック周波数は、1秒あたりのクロックの数で、1GHzなら1秒に10⁹回、1クロックの時間(クロックサイクル時間)は1ナノ秒になる。

実行時間の求め方

実行時間 = 命令数 × 平均CPI × クロックサイクル時間
         = 命令数 × 平均CPI ÷ クロック周波数

命令の種類ごとにCPIが違う場合は、出現する割合(構成比率)で重み付けした平均をとる。

平均CPI = Σ(命令の種類ごとのCPI × 構成比率)

計算例

命令の種類CPI構成比率
ロード・ストア425%
分岐325%
整数演算150%

単位をそろえるのがポイントで、GHzは10⁹、MHzは10⁶として計算する。

MIPS

MIPS(Million Instructions Per Second)は、1秒間に実行できる命令の数を、百万単位で表した性能の指標である。

MIPS = クロック周波数 ÷ 平均CPI ÷ 10⁶

上の例では、500,000,000 ÷ 2.25 ÷ 10⁶ ≒ 222 MIPS となる。

性能を上げる方法

方法効果
クロック周波数を上げる1クロックの時間が短くなる
CPIを下げるパイプライン、スーパースカラなどで、1クロックあたりに処理できる命令を増やす
命令数を減らすコンパイラの最適化、効率のよいアルゴリズム

実際の試験ではここに出る!

↑