命令パイプライン
そうすることで、クロック周期も縮小することができる。例えば、RISCのパイプラインは次の5段階に分割されていて、それぞれの間にフリップフロップがある。
命令フェッチ
命令デコードとレジスタフェッチ
実行
メモリアクセス
レジスタへのライトバック
プログラマやコンパイラがアセンブリ言語コードを書くとき、前提として命令は書かれた順序通りに逐次的に実行されるものとしている。つまり、ある命令が完了してから次の命令が実行されると仮定している。この仮定は命令パイプラインがある場合は正しくない。このことでプログラムの動作が不正になる場合、そのような状況をパイプラインハザードと呼ぶ。ハザードに対処する方法は様々なものがある。
パイプラインを使わないアーキテクチャでは、CPUの一部が命令を処理している間、他の部分が何もしていないことになり、効率が悪い。命令パイプラインはそのような何もしていない時間やCPUの部分を完全に無くすことはできないが、各部分が同時並列で動作できるようにすることで、プログラムの実行を大幅に高速化する。
だが、全ての命令が前後の命令と独立しているわけではない。単純な命令パイプラインでも、命令の完了までには5段階を要する。