EMZETT.
Giriş yap

Dal tahmini (branch prediction)

Kısaca: Dal tahmini, bir programın bir dallanmada hangi yola gideceğini tahmin eder; böylece CPU boru hattı sonucu beklemek zorunda kalmaz.

Biraz daha ayrıntılı: Modern CPU’lar komutları, koşulun sonucu belli olmadan çok önce getirir ve başlatır. Tahmin doğruysa yürütme duraksamadan sürer. Yanlışsa iş atılır ve bu yaklaşık 10–20 döngüye mal olur.

Ayrıntılı

  • En basit biçim: Dal başına bir sayaç, son seferde alınıp alınmadığını hatırlar.
  • Daha iyisi: Geçmişe dayalı tahminciler son dal sonuçlarını bir desen olarak kullanır. Modern CPU’lar dalların %95’inden fazlasını isabet ettirir.
  • Görünür etki: Bir dizideki 128’in üzerindeki değerleri toplamak, dizi sıralıysa daha hızlıdır; çünkü dal deseni öngörülebilir olur.
  • Koddaki karşı önlemler: Dalsız ifadeler (koşullu atamalar), sıralı veriler, nadir durumları sıcak döngüden çıkarmak.
  • Güvenlik: Spekülatif yürütme, yazılım ve mikrokod önlemleri gerektiren Spectre gibi açıklara yol açtı.
  • Bağlam: Sırasız yürütme yanında spekülasyonun parçası.

Ayrıca bak: CPU yapısı