したがって、パイプライン化されたプロセッサの分岐予測で使用される基本的な手法を理解しています-2ビット飽和カウンター、2レベル適応予測器など.
ここに私の質問があります:
1) 分岐ターゲットの予測: なぜこれが重要なのか、またここで使用されているメカニズムにはどのようなものがあるのか? 分岐について考えるとき、「bne r2, r3, LABEL」と考えます。これは、r2 != r3 の場合、PC (プログラム カウンター) = PC + LABEL を意味する LABEL に分岐することを意味します。ここでターゲットを予測することの何がそんなに不思議なのですか? コンパイルされた LABEL の値に基づいて、それがどうなるかがわかります。私はおそらくここでポイントを見逃しています。
2) プログラム カウンタ値自体 (例: 0x4001000C)、または少なくともその最後の数ビットが、分岐予測スキームの一部として使用されるのはなぜですか? PC の最後の 4 ビットが (4 ビットの) 分岐履歴レジスタに連結され、その 8 ビットの値がパターン履歴テーブルへのアクセスに使用されるスキームを見ました。PCはかなり恣意的だと思います!
これらの問題を理解していただきありがとうございます