命令あたりのサイクル数

コンピュータアーキテクチャにおいて命令あたりのサイクル数(別名:命令あたりのクロックサイクル数命令あたりのクロック数、またはCPI)は、プロセッサのパフォーマンスの1つの側面であり、プログラムまたはプログラムフラグメントの命令あたりのクロックサイクルの平均数です。 [1] これは、サイクルあたりの命令数逆数です。

意味

特定のプロセスにおける命令あたりのサイクル数の平均 ( CPI ) は、次の加重平均によって定義されます。

ここで、 は特定の命令タイプの命令数はその命令タイプのクロックサイクル、は総命令数です。合計は、特定のベンチマークプロセスにおけるすべての命令タイプを合計したものです。

説明

次の 5 つのステージを持つ従来の RISC パイプラインを想定します。

  1. 命令フェッチ サイクル (IF)。
  2. 命令デコード/レジスタフェッチサイクル (ID)。
  3. 実行/有効アドレス サイクル (EX)。
  4. メモリアクセス (MEM)。
  5. ライトバックサイクル (WB)。

各ステージは 1 クロック サイクルを必要とし、命令はステージを順番に通過します。パイプライン処理を行わない場合、マルチサイクル プロセッサ、前の命令がステージ 5 で終了した後にのみステージ 1 で新しい命令がフェッチされるため、命令の実行にかかるクロック サイクル数は 5 になります (CPI = 5 > 1)。この場合、プロセッサはサブスカラーと呼ばれます。パイプライン処理を行う場合、命令レベルの並列処理を利用してクロック サイクルごとに新しい命令がフェッチされるため、理論的には 5 つのパイプライン ステージに同時に 5 つの命令を配置できるため (ステージごとに 1 つの命令)、クロック サイクルごとに異なる命令がステージ 5 を完了し、平均して命令の実行にかかるクロック サイクル数は 1 (CPI = 1) になります。この場合、プロセッサはスカラーと呼ばれます。

単一実行ユニットのプロセッサでは、達成可能な最高の CPI は 1 です。ただし、複数実行ユニットのプロセッサでは、さらに優れた CPI 値 (CPI < 1) を実現できます。この場合、プロセッサはスーパースカラーと呼ばれます。パイプラインを使用せずに CPI 値を向上させるには、実行ユニットの数がステージ数より多くなければなりません。たとえば、6 つの実行ユニットがある場合、前の 6 つの命令がステージ 5 で終了した後にのみ、ステージ 1 で 6 つの新しい命令がフェッチされるため、平均して命令の実行にかかるクロック サイクル数は 5/6 (CPI = 5/6 < 1) になります。パイプラインを使用して CPI 値を向上させるには、少なくとも 2 つの実行ユニットが必要です。たとえば、実行ユニットが 2 つある場合、命令レベルの並列性を利用して 2 つの新しい命令がクロック サイクルごとにフェッチされるため、2 つの異なる命令がクロック サイクルごとにステージ 5 を完了し、平均して命令の実行にかかるクロック サイクル数は 1/2 (CPI = 1/2 < 1) になります。

例1

マルチサイクルMIPSには、次の 5 種類の命令があります。

プログラムに次の内容が含まれている場合:

  • 50% ロード命令
  • 25% 店舗指示
  • 15% R型指示
  • 8% 分岐命令
  • 2%ジャンプ指示

すると、CPIは次のようになります。

例2

[2] 400MHzプロセッサを使用して、の命令ミックスとクロックサイクル数 でベンチマークプログラムを実行しました。

命令タイプ命令数クロックサイクル数
整数演算450001
データ転送320002
浮動小数点150002
制御権の移転80002

このプログラムの有効な CPI、MIPS (1 秒あたりの命令数) レート、および実行時間を決定します。

以来:そして

したがって:

参照

参考文献

  1. ^ パターソン、デイビッド・A.、ヘネシー、ジョン・L. (1994). 『コンピュータの構成と設計:ハードウェア/ソフトウェア・インターフェース』 モーガン・カウフマン. ISBN 9781558602816
  2. ^ Kai Hwang著『Advanced Computer Architecture』第1章、演習問題1.1
Retrieved from "https://en.wikipedia.org/w/index.php?title=Cycles_per_instruction&oldid=1303163365"