Table of Contents
Pipeliningは、複数の指示の実行をオーバーラップすることにより、パフォーマンスを向上させるためにマイクロプロセッサアーキテクチャで使用される技術です。 複数の手順の異なる部分を同時に処理できるように、指示処理をいくつかの段階に分割します。 この記事では、実装に直面したいくつかの実用的な課題について、パイプラインに関与する基本的な計算を探求し、議論します。
パイプラインにおける基本的な計算
パイプラインの第一次計算には、パイプラインのスループットと効率を決定することが含まれます。スループットは、サイクル(IPC)ごとの指示としてしばしば測定されます。パイプラインがnステージを持っている場合は、理想的に、パイプラインが満たされた後に、すべてのサイクルを完了します。理想的なスループットは次のとおりです。
の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の の
しかし、実際の性能は、パイプラインの危険や屋台などの要因に依存します。パイプラインのスピードアップは、次のように計算できます。
[] パイプライン/実行時間なしで、速度 = 実行時間(パイプライニング)]
パイプラインにおける実践的課題
パイプラインの導入は、いくつかの実用的な課題を紹介します。 指示が前の指示の結果に依存したときにデータハザードが起こります。 実行の流れを変えるブランチの指示から発生する危険性を制御する。 ハードウェアリソースが重複する指示をサポートするのに不十分なときに構造ハザードが起こります。
一般的な危険物
- データハザード:]] 転送やスタリングなどの技術が必要です。
- 制御ハザード:]] ブランチ予測で管理。
- 構造危険性:[ より多くのハードウェアリソースを追加することで解決する。
これらの課題に対処することは、マイクロプロセッサーのパイプラインによって提供される効率の利益を維持するため不可欠です。