概要
IPC(Instructions
Per Cycle)は、
CPUが「1
クロック(1周期)」あたりに
平均してどれくらいの命令を処理できるかを表す指標。
クロック周波数と並んで、
CPU性能を左右する重要な要素として扱われる。
どう解釈するか
- IPCが高い:同じクロックでも、より多くの処理を進められる傾向
- IPCが低い:クロックが高くても、1周期あたりの進みが小さい可能性
概念的には
処理性能 ≒ クロック周波数 × IPC ×(コア数など)
のように捉えられる(ただし実際は
メモリ待ち等で変動する)。
IPCが変わる主な要因
CPUアーキテクチャ
パイプライン(パイプライン:処理を段階分けして流れ作業にする設計)、実行ユニット数、分岐予測、アウトオブオーダー実行などで伸びる。
キャッシュとメモリ待ち
命令や
データがキャッシュに乗るかどうかで、実行が止まってIPCが下がることがある。
命令の種類・分岐の多さ
単純計算中心か、分岐・依存関係が多いかでIPCは変動しやすい。
コンパイラ/最適化
ソフト側の最適化や命令の並べ方で、
CPUが効
率よく並列実行できるかが変わる。
使うときの注意点
- IPCは「CPUの固定の値」ではなく、ワークロード(処理内容)で大きく変わる
- 世代比較で「IPCが○%向上」と言う場合、測定条件やベンチマークに依存する
- 実用性能は、IPCだけでなくクロック、コア数、メモリ帯域、電力制限もセットで見るのが基本