パイプラインとハザードの試験問題への適用

パイプラインの計算問題は、理想サイクル数を先に出し、ストール・分岐ミス・資源競合の追加サイクルを後から足すと整理しやすい。性能向上率を問われる場合は、非パイプラインとの基準を揃える。

この単元で学ぶこと

  • 理想サイクル数の意味と役割を説明できる
  • ストール加算の意味と役割を説明できる
  • 分岐ペナルティの意味と役割を説明できる
  • ストールや分岐ペナルティを含む実効性能を計算できる

本文解説

k段パイプラインでn命令を理想処理するとk+n-1サイクルになる。実際にはハザードによる停止やフラッシュが入り、実効CPIは1より大きくなる。高速化率は比較対象の総時間を同じ単位へ揃えて求める。

理想サイクル数 k段パイプラインでn命令ならk+n-1サイクルが基本。 最初の命令がk段を通過した後、理想的には1サイクルごとに完了する。

ストール加算 待ちが発生したサイクル数を理想サイクル数へ追加する。 データ依存や資源競合の影響を総時間へ反映する。

分岐ペナルティ 分岐予測ミスなどで無効化・再取得が必要になった追加サイクル。 分岐回数×ミス率×1回当たりペナルティで平均影響を求める場合がある。

実効CPI 総クロック数を実行命令数で割った平均クロック数/命令。 理想CPI1にストール等の平均追加分が上乗せされる。

高速化率 基準方式の実行時間を改善後の実行時間で割った比。 同じクロック周期ならサイクル数の比で求められる。

「理想」と書かれている値と「追加損失」を混ぜない。まず理想サイクル数を求め、イベント回数×ペナルティを加算する。高速化率では分子・分母を逆にしない。

5段で100命令なら理想104サイクル。データ待ち8サイクル、分岐ミス4回×2サイクルなら合計120サイクル。実効CPIは120/100=1.2。

図解

パイプライン性能計算
理想サイクル数にストール・分岐損失を追加し、実効CPIや高速化率へつなぐ。

重要ポイント

  • 理想サイクル数: k段パイプラインでn命令ならk+n-1サイクルが基本。
  • ストール加算: 待ちが発生したサイクル数を理想サイクル数へ追加する。
  • 分岐ペナルティ: 分岐予測ミスなどで無効化・再取得が必要になった追加サイクル。
  • 実効CPI: 総クロック数を実行命令数で割った平均クロック数/命令。
  • 理想時間とハザード損失を分けて計算し、最後に合算する。

間違えやすい点

  • 分岐回数ではなく予測ミス回数へペナルティを掛ける条件を見落とさない。
  • 高速化率は改善前÷改善後である。
  • 実効CPIを段数そのものと同一視しない。

用語解説

理想サイクル数
k段パイプラインでn命令ならk+n-1サイクルが基本。
ストール加算
待ちが発生したサイクル数を理想サイクル数へ追加する。
分岐ペナルティ
分岐予測ミスなどで無効化・再取得が必要になった追加サイクル。
実効CPI
総クロック数を実行命令数で割った平均クロック数/命令。
高速化率
基準方式の実行時間を改善後の実行時間で割った比。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。