Bu teorik bir sorudur ve takılı hissediyorum. ARM ISA ve pipel veri yolunu aldığımı farz et. Basitlik için her zaman bir dalın alınacağını öngören bir dal tahmincisi kullanıyorum. Açık olduğu gibi, eğer şube gerçekten alınmışsa çalışır, aksi halde başarısız olur. Başarısız olursa, tüm değişiklikleri geri alması ve geri alması gerekir, yani boru hattını temizleyin.Boru hattı nasıl taşınır?
Nasıl yapılması gerekiyor?
Bazı kayıtlar bazı kayıtlara yazılırsa?
O zaman bu kaydı bir önceki değere nasıl getirebilirim? Aynı şey bayraklar için de geçerli mi?
İlgili: [Bir şube yanlış tahmin, çok kısa bir if deyimi gövdesi için bile tüm boru hattını temizler mi?] (Https://stackoverflow.com/questions/29522431/does-a-branch-misprediction-flush-the- tüm-boru hattı bile-için-çok-kısa-if-st). Buradaki yorumlarda tartışıldığı gibi, kızarma için basit bir teknik, yanlış tahmin edilen şubenin emekliliğe ulaşmasını beklemek; daha sonra kayıt durumu, geri alabileceğiniz doğru sipariş durumu var. Aksi takdirde, yanlış adlandırmalardan hızlı kurtarma için kayıt yeniden adlandırma durumunu kontrol edin (istisnalar hariç tümüyle daha hızlı). –
Bir tür geri alma/kurtarma mekanizması (genellikle kayıt yeniden adlandırma dahil) olmadan, spekülatif yürütme dışı yürütme yapamazsınız. ** Herhangi bir özel destek olmadan şube tahminine göre getirebilir/çözebilirsiniz **, ancak spekülatif talimatların mimari durumun tek kopyasını değiştirmesine izin veremezsiniz. (Dric'in cevabının işaret ettiği gibi, sıralı bir boru hattı, talimatların geri alma aşamasına kadar ilerlemesine izin verebilir. Çünkü, siparişte olduğu için, daha önceki bir talimatın hatalı ya da yanlış tahmin edilmiş olduğunu zaten biliyoruz). –