パイプライン

読み:パイプライン
外語:pipeline
品詞:名詞

マイクロプロセッサの命令実行を幾つかの段階に分割し、それぞれの段階で独立して命令を実行できるよう工夫した技術のこと。

これは、古くは8086の時代から使われてきた。マイクロプロセッサにおいて各処理を細分化して処理すると、動作周波数を上げやすくなる効果がある。

具体的には、命令フェッチ(命令の取り込み)、命令デコード(解釈)、実行、結果の反映などに分けられ、このそれぞれをステージと呼ぶ。

そして、それぞれが独立に動作することにより平行して次々と命令の処理が可能となり、処理速度の向上を実現できる。さらに、このステージを細かく分割することで、より効率的な処理を実現することができる。

超多段のパイプライン

最近のマイクロプロセッサはパイプラインを細かく分け、処理の高速化に役立てている。

例えば、Intelのプロセッサの場合、i486Pentiumでは5ステージ、MMX Pentium では6ステージで構成されているが、Pentium 4はNorthwoodコアで20ステージ、Prescottコアに至っては31ステージにもなっている。

このようにパイプラインが深いアーキテクチャを「スーパーパイプライン」という。また、20ステージを超える極端なパイプラインを採用したPentium 4では「ハイパーパイプライン」を自称している。

難点

パイプラインアーキテクチャというのは、命令が滞らず流れ続けることで性能を稼ぐものである。

従って、滞らないように工夫して設計されることになるが、完全に滞りを無くすことはできない。この滞りをパイプラインストールといい、ストールの原因となるものをハザードという。

また分岐予測をミスした場合にはパイプライン中で処理中のものをすべて廃棄しなくてはならない。