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

コンピュータ・アーキテクチャにおけるサイクルあたりの命令実行数: instructions per cycleIPCクロックあたりの命令実行数とも)とは、プロセッサ(主にCPU)の性能の指標の一つであり、各クロックサイクルにおいて実行される命令の平均数のことである。命令あたりのサイクル数英語版逆数である[1]

説明 編集

IPCの計算 編集

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

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

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

IPCが要因となる事項 編集

IPSは、高IPC低クロック速度(例: AMD Athlon、初期のIntel Coreシリーズ)、または低IPC高クロック速度(例: Intel Pentium 4、AMD Bulldozerの一部)によって実現できる。どちらも有効な設計であり、どちらを選ぶかは歴史、エンジニアリング上の制約、市場の圧力などに依るところが多い。[独自研究?]しかし、IPCも周波数も高ければ必ず高パフォーマンスとなる。

コンピュータの速度 編集

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

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

関連項目 編集

参考文献 編集

  1. ^ John L. Hennessy, David A. Patterson. "Computer architecture: a quantitative approach". 2007.