Branch Prediction
Dallanma tahmini (Branch Prediction) — İşlemcinin koşullu dallanmanın sonucunu kesinleşmeden tahmin ederek komut hattını beslemeye devam etmesini sağlayan mikro-mimari teknik.
Neden Gerekir?
Derin bir komut hattında dallanmanın sonucu geç öğrenilirse işlemci sonraki komutların hangileri olduğunu beklemek zorunda kalır. Branch predictor geçmiş davranıştan ve mikro-mimari durumdan yararlanarak olası yönü tahmin eder; işlemci de bu yol üzerinde spekülatif olarak komut getirmeye ve yürütmeye devam eder.
Tahmin doğruysa bekleme büyük ölçüde gizlenir. Yanlış tahminde spekülatif işler iptal edilir ve doğru yoldan yeniden başlanır. Misprediction maliyeti pipeline derinliğine ve işlemci mimarisine bağlıdır.
Performans Yorumu
Veriye bağlı ve düzensiz branch'ler tahmin edilmesi zor olabilir. Buna karşılık branchless kod her zaman daha hızlı değildir; ek komutlar, bağımlılıklar ve vectorization etkisi ölçülmelidir.
Kaynak koddan tek başına kesin sonuç çıkarılamaz. Profiling, donanım sayaçları ve hedef CPU davranışı birlikte değerlendirilmelidir.