命令フェッチ
CPU パイプラインの最初のステップで、メモリ(命令キャッシュ)から命令を取り出し、後続の機構に供給する。フロントエンドがどれだけ速く正確に命令を取れるかが、コアがこなせる仕事量の上限を決める。
仕組みは、プログラムカウンタが次の命令を指し、フェッチユニットが毎サイクル L1 命令キャッシュ(I キャッシュ)から命令のブロックを読む、というもの。現代のコアは1サイクルに多数の命令を取りたく、ジャンプを待ってもいられないため、フェッチは分岐予測(BTB/RSB)と密接に絡み合う。予測された経路に沿って、フロントエンドは先回りして投機的にフェッチする。
ボトルネックは二つある。I キャッシュミスは実行すべき命令がなくなるのでコア全体を止め、分岐予測が外れれば間違ったコードを取ってきたことになり、破棄しなければならない。マイクロオペレーションキャッシュは、頻繁に実行されるコードについてフェッチとデコードを省略できる。フロントエンド幅(1サイクルあたりのフェッチ命令数)は、マイクロアーキテクチャの基本的な指標である。