チップ製造技術の向上によってダイにより多くの回路を詰め込むことができるようになり、設計者がその使い道を探すようになったのはそれほど昔のことではなかった。もっともありふれた方法はダイにキャッシュをどんどん追加していくことだった。キャッシュは単純に高速なメモリであり、メインメモリと通信するのにかかる「長い」サイクルに対して数サイクルでアクセスすることができる。CPUはキャッシュの読み書きを自動化するキャッシュコントローラを搭載し、データがキャッシュ内に存在すればすぐに読み出すことができ、なければキャッシュコントローラが読み込む間プロセッサはストールする。
分岐予測.
命令レベルの並列化により高い性能を実現する上で障壁となるのが、分岐によるパイプラインのストールとフラッシュである。通常、条件分岐が発生するかどうかは、レジスタの演算結果に依存するためパイプラインの後段にならないと分からない。プロセッサの命令デコーダが条件分岐命令に出会った時点から、問題となるレジスタの値が読み出せるようになるまでの時間、パイプラインは数サイクル停止する可能性がある。平均的には、命令の五分の一は分岐であり、つまり高い頻度でストールが発生する。実際に分岐が行われると事態はより深刻で、パイプラインにあった以降すべての命令を廃棄する必要がある。
分岐予測や投機実行などの手法が分岐によるペナルティを軽減させるために用いられる。分岐予測はハードウェアがある特定の分岐が起こるかどうかを推測する。推測により、プリフェッチ命令はレジスタの読み出しを待たなくてもよくなる。投機実行はこれを大きく発展させたもので、予測された経路のコードを、分岐が発生するかどうかがわかる前に実行してしまうものである。
スーパースカラー.
これまで述べてきたような方法を実装すると複雑さやゲート数が増大するのだが、半導体製造技術の向上により、すぐに多くのゲートが搭載できるようになってしまう。
アウトオブオーダー.