CPI
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 | 構成比率 |
|---|---|---|
| ロード・ストア | 4 | 25% |
| 分岐 | 3 | 25% |
| 整数演算 | 1 | 50% |
- 平均CPI = 4 × 0.25 + 3 × 0.25 + 1 × 0.5 = 1 + 0.75 + 0.5 = 2.25
- 2,000,000命令を、クロック周波数 500MHz のCPUで実行すると
- 実行時間 = 2,000,000 × 2.25 ÷ 500,000,000 = 0.009秒 = 9ミリ秒
単位をそろえるのがポイントで、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問
ネットワークスペシャリスト
- 午前Ⅱ
テクニカルエンジニア(ネットワーク)
- 午前