Önden yürütüm

Önden yürütüm işlemcinin ön bellekte bulamama durumunda boşa harcayacağı çevrimlerin beklemekte olan buyrukların önceden yürütülmesi ile faydalı şekilde kullanılması esasına dayalı bir bilgisayar mimarisi tekniğidir. Bu şekilde önceden yürütülecek olan buyruklar ile gelecekte oluşacak olan önbellekte bulamama durumları tespit edilerek, işlemcinin boşta olan yürütüm kaynakları kullanılarak faydalı buyruk ve veri ön yüklemeleri yapılması sağlanır.

Bu tekniğin getireceği donanım masrafı, işlemcinin önden yürütüm moduna geçmeden önce yazmaç öbeğinin durumunu kaydetmesi ihtiyacından ileri gelmektedir. Bu ihtiyaç, işlemci önden yürütüm modundan çıkıp normal yürütüme geçerken, önden yürütüm esnasında hesaplanan bütün sonuçlar geçersiz sayılacağından, çok küçük donanım kullanılarak giderilebilir.

Dallanma tahmin edici önden yürütme esnasında oluşan dallanma sonuçlarını kullanarak başarısını artırabilir.

Önden yürütüm başlangıçta sıralı yürütüm yapan işlemciler için tasarlanmış olmasına rağmen, sırasız yürütüm yapan işlemcilerde çok büyük buyruk pencerelerine alternatif olarak kullanılabilir.

Önden yürütüme giriş 
Önden yürütüm tekniği kullanan bir işlemci 2. seviye önbellekte bir bulamama durumumu tespit ettiğinde hatalı giriş yapan buyruğun adresini kaydederek önden yürütüm moduna geçer. İşlemci yazmaç öbeğinin o andaki durumunu işaretler. Bellek hiyerarşisinin durumu kaydet(store) işlemleri devre dışı bırakılarak işaretlenir. Kaydetme işlemleri adres hesaplama ve bulma durumu kontrolü açısından serbesttir fakat belleğe yazma işlemi yapmalarına izin verilmez.

Çünkü önbellekte bulunamayan adresten dönecek değer önden yürütüm esnasında bilinemez, bu durumda önden yürütülen buyrukların hatalı veriyi bağımlı olmaları mümkün olur. Bu durumlar yazmaç öbeğindeki her yazmaca "invalid(hatalı)" veya INV  biti eklenerek işaretlenir. Önden yürütüme girilmesine sebep olan bir load(yükle) buyruğu ise bu buyruğun varış yazmacı da INV olarak işaretlenir.

Önceden yürütülen buyruklar 
Önbellekte ki bulamama durumundan sonra işlemci yürütmesine devam eder fakat bütün sonuçlar geçicidir ve sadece önyükleme yapmak için kullanılırlar. Bazı yazmaçların hatalı olarak işaretlenmesiyle işlemciye hangi yazmaçların güvenilir olduğu bilgisi sağlanmış olur. Hatalı kaynaklara bağlı olan dallanma buyrukları gidecekleri yerler doğru olarak tahmin edilemeyeceğinden çözümlenmezler. Normal durumda tahmin başarısının yüksek oranlara çıkabilmesi için dallanma sonuçları kayıt altına alınır.

Önden yürütümden çıkış 
Önbellekte bulunamayan veri ana bellekten döndüğünde, işaretlenen nokta geri yüklenir ve işlemci normal yürütmesine devam eder.

Ayrıca bakınız

Kaynakça 

 Improving data cache performance by pre-executing instructions under a cache miss
 Improving processor performance by dynamically preprocessing the instruction stream
 Runahead execution: an alternative to very large instruction windows for out-of-order processors

Komut işleme