サイクルあたりの命令実行数

コンピュータ・アーキテクチャにおけるサイクルあたりの命令実行数（、IPC、クロックあたりの命令実行数とも）とは、プロセッサ（主にCPU）の性能の指標の一つであり、各クロックサイクルにおいて実行される命令の平均数のことである。の逆数であるJohn L. Hennessy, David A. Patterson. "Computer architecture: a quantitative approach". 2007.。

 説明 
 IPCの計算 
IPCの計算手順は次のとおりである。まず、一つのコードセットを実行し、それを完了するのに必要なマシンレベルの命令数を計算する。次に、高精度タイマーを用いて実際のハードウェアにおいて先述のコードセットを完了するのに必要なクロックサイクル数を計算する。最後に、命令数をCPUのクロックサイクル数で割ることによってIPCが得られる。

プロセッサの秒間命令数（IPS）や秒間浮動小数点演算数（FLOPS）は、IPCにそのプロセッサの（秒あたりのサイクル数。単位はヘルツ）を乗じることで求められる。IPSはプロセッサの性能の大まかな指標である。

プロセッサによってはサイクルあたりの命令実行数は一定ではなく、実行される特定のソフトウェアとプロセッサとの相互作用や、マシン全体、特に記憶階層に依存することもある。また、複数の算術論理演算装置（ALU。基本的な数値演算や論理演算ができるプロセッサのサブシステム）や短いパイプラインなどの特徴を持ち、IPCが平均より高くなるプロセッサも存在する。異なる命令セット同士を比較すると、同じチップ技術が使用されている場合、複雑な命令セットよりも単純な命令セットの方がIPCが高くなりやすい。しかしながら、複雑な命令セットの方が少ない命令数でより有益な動作をすることができる。このように、異なる命令セット同士（例えばx86とARM）でIPCを比較しても、通常は意味がない。

 IPCが要因となる事項 

高IPSは、高IPC低クロック速度（例: AMD Athlon、初期のIntel Coreシリーズ）、または低IPC高クロック速度（例: Intel Pentium 4、AMD Bulldozerの一部）によって実現できる。しかし、IPCも周波数も高ければ必ず高パフォーマンスとなる。

 コンピュータの速度 
どんなコンピュータでもできる動作であれば、その実行速度はプロセッサの速度以外にも、命令セットアーキテクチャ、プロセッサのマイクロアーキテクチャ、コンピュータシステムの構成（補助記憶装置の設計や他の付属装置の可用性と性能など）、オペレーティングシステムの効率、使われているアプリケーションソフトウェアの設計の高度さなど、様々な要因に依存する。

コンピュータシステムのユーザや購入者にとって、IPCはシステムの性能の目安に特になるわけではない。システムの性能を測るためには、ベンチマークの方が遥かに有用である。しかしながら、なぜがコンピュータの性能に関連する唯一の要因ではないのかを示す一例を提供してくれるのがIPCである。

 関連項目 
 MIPS

 FLOPS

 ベンチマーク

 参考文献 

Category:命令処理
Category:クロック
Category:率・割合