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

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



説明
次の 5 つのステージを持つ 従来の RISC パイプラインを想定します。
- 命令フェッチ サイクル (IF)。
- 命令デコード/レジスタフェッチサイクル (ID)。
- 実行/有効アドレス サイクル (EX)。
- メモリアクセス (MEM)。
- ライトバックサイクル (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は次のようになります。

400 MHzプロセッサを使用して、次の命令ミックスとクロック サイクル数 でベンチマーク プログラムを実行しました。
| 命令タイプ | 命令数 | クロックサイクル数 |
|---|
| 整数演算 | 45000 | 1 |
| データ転送 | 32000 | 2 |
| 浮動小数点 | 15000 | 2 |
| 制御権の移転 | 8000 | 2 |
このプログラムの有効な CPI、MIPS (1 秒あたりの命令数) レート、および実行時間を決定します。


以来:そして



したがって:


参照
参考文献