読み方 : シーピーアイ

CPI 【Cycles Per Instruction】

概要

CPI(Cycles Per Instruction)とは、CPUの性能指標の一つで、一つの命令を実行するのにクロック周期が何サイクル必要かを表したもの。同じクロック周波数なら、この値が小さいほど効率よく高速にプログラムを実行することができる。

解説 CPUクロック信号という一定周期の信号に合わせて回路間の動作タイミングを合わせている。通常、一つの命令の実行には数サイクルのクロック周期を要する。平均して何サイクルで一つの命令を実行できるかを表すのがCPIである。

最も単純なCPUでは、一命令ごとに順番に読み出し、デコード、実行、書き戻しなどのステージを経るため、5~10CPI程度となることが多い。パイプライン機構を導入して、前の命令が次のステージに移った段階で新しい命令を呼び込むようにすることで、1CPIに近づけることができる。

さらに、スーパースカラ型のCPUでは複数の実行ユニットを並行に動作させ、依存関係にない命令を同時に実行することができ、1を下回るCPIを実現することもできる。CPU全体で平均するとクロック1周期の間に1つ以上の命令を実行できることを意味する。

CPIは命令の種類によって異なり、CPUの設計や実行するプログラムの構造によっても変わってくるため、単純な計算で求めることは難しい。モデルとなる処理を実装したプログラムを実際に実行してみてCPIを計測するベンチマークテストなどが行われることが多い。

IPC (Instructions Per Cycle)

CPIの逆数で、クロック周期1サイクルあたりに実行可能な命令の平均回数のことを「IPC」という。単純な構造のCPUでは1以下となるが、命令実行の並列化などで高速化すると1を超える値となる。クロック周波数の値を乗じると、1秒あたりの命令実行回数である「IPS」(Instructions Per Second)を求めることができる。

(2025.10.11更新)

資格試験などの「CPI」の出題履歴

▼ 基本情報技術者試験
令7修1 問8】 あるプログラムは,命令 a~d を次の順で実行する。各命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)は,表のとおりである。
令6修1 問8】 あるプログラムは,命令 a~d を次の順で実行する。各命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)は,表のとおりである。
令4修12 問12】 同じ命令セットをもつコンピュータAとBがある。それぞれのCPUクロック周期及びあるプログラムを実行したときのCPI(Cycles Per Instruction)は,表のとおりである。
平27修6 問9】 表のCPIと構成比率で,3種類の演算命令が合計1,000,000命令実行されるプログラムを,クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か。
平26修6 問9】 表のクロック周波数と平均CPI(Cycles Per Instruction)の組合せのうち,同一命令数のプログラムを処理する時間が最も短いものはどれか。
平25修12 問9】 表のCPIと構成比率で,3種類の演算命令が合計1,000,000命令実行されるプログラムを,クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か。
平24修6 問9】 表のクロック周波数と平均CPI(Cycles Per Instruction)の組合せのうち,同一命令数のプログラムを処理する時間が最も短いものはどれか。
平23修7 問9】 あるプログラムは,命令 a~d を次の順で実行する。各命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)は,表のとおりである。
平23修6 問9】 表のCPIと構成比率で,3種類の演算命令が合計1,000,000命令実行されるプログラムを,クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か。
平22春 問9】 表のCPIと構成比率で,3種類の演算命令が合計1,000,000命令実行されるプログラムを,クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か。