CPI

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

CPUが1命令を実行するのに要する平均クロックサイクル数を表す指標。CPUの実行時間は、命令数 × CPI ÷ クロック周波数 で求められる。

イマシルちゃんの解説

CPUはクロックという周期的な信号に合わせて命令を処理するんだ。
CPIは1命令あたりに平均何回分のクロックを使ったかを表す指標だよ。
処理全体で使ったクロックの回数を、実行した命令の数で割って求めるの。
たとえば100命令の処理に200回分を使ったなら、CPIは2になるよ。
命令数にCPIを掛けると必要なクロックの回数が分かるんだ。
そこに1回分の時間を掛ければ、CPUでの処理時間を見積もれるよ。
同じ命令数とクロックの速さなら、CPIが小さいほど短い時間で処理できるんだ。

より深い解説

定義

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クロックあたりに処理できる命令を増やす
命令数を減らすコンパイラの最適化、効率のよいアルゴリズム

使用率を含む処理能力の見積り

必要な命令実行数を、CPUを使える時間で割る。平均の命令数は、処理の種類ごとの命令数を件数の割合で重み付けして求める。

独自の例として、1秒に40件の処理があり、半分が100万命令、残りが300万命令を使うとする。平均は200万命令なので、毎秒8,000万命令が必要になる。CPU使用率を50%に抑えるなら、必要な能力は80÷0.5=160MIPSである。

使用率を掛けて能力を小さくするのではなく、使用できない時間の分だけ余裕を見込む。実際の性能比較では、命令体系や入出力待ちも異なるため、MIPSだけで異機種の業務性能を断定しない。

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

ネットワークスペシャリスト

午前Ⅱ

テクニカルエンジニア(ネットワーク)

午前
↑