Sırasız yürütüm ya da Düzensiz yürütme (İngilizce: out-of-order execution veya dynamic execution), bilgisayar mühendisliğinde, günümüz yüksek performanslı işlemcilerinde kullanılan, yüksek gecikmeler sebebiyle harcanan kullanıma sunan bir talimat yürütme yaklaşımıdır.
Tarihçe
1970'lerde ve 1980'lerin başında bilgisayar mimarisinin ana araştırma alanlarından biri olan sırasız yürütüm, veri akış hesaplamasının sınırlı bir formudur. Bu konuda Yale Patt tarafından önemli bir akademik araştırma yapılmış ve yine onun simülatöründe sunulmuştur. James E. Smith ve A.R. Pleszkun tarafından 1985 yılında yayınlanan makalede kural dışı durumlardaki kesin davranışların nasıl koruncağı açıklanarak tasarı tamamlanmıştır.
Tartışmalı da olsa sırasız yürütüm kullanan ilk makine, skor tahtası kullanarak çakışmaları çözümleyen, CDC 6600 (1964) olmuştur. Modern kullanımda skor tahtası kullanımı, okuduktan sonra yazma durumunda bekleme yapması özelliğinden ötürü, sırasız yürütümün değil de, daha çok sıralı yürütümün bir parçası olarak görülmektedir.
Üç yıl kadar sonra, IBM 360/91 (1966) sırasız yürütümü tam olarak destekleyen Tomasulo algoritmasını tanıttı.
1990 yılında, sadece kayan nokta işlemleriyle sınırlı olmasına rağmen IBM ilk sırasız mikroişlemci olan POWER1'i tanıttı.
Bundan sonra sırasız yürütüm, IBM/Motorola PowerPC 601 (1993), Fujitsu/HAL SPARC64 (1995), Intel Pentium Pro (1995), MIPS R10000 (1996), HP PA-8000 (1996), AMD K5 (1996) ve DEC Alpha 21264 (1998) gibi öne çıkan örneklerle 1990'lı yıllarda daha yaygın hale geldi. Sun UltraSPARC, HP/Intel Itanium, Transmeta Crusoe, Intel Atom ve IBM POWER6 ise bu akımın dışında kalan dikkat çekici örneklerdir.
1990'lı yılların ortalarına kadar bu tekniğin makinelerde temel tasarım olarak kendini gösterememesinin nedeni, sırasız yürütümün mantıksal karmaşıklığıdır. Bu sınıfta bir makine oluşturmak için gerekli olan yüksek miktarda silikon alanın getireceği yüksek maliyetlerden ötürü fiyata duyarlı marketlere hitap eden üreticiler hala bu paradigmayı kullanmamaktadır. Sırasız yürütüm tasarımında ulaşılması zor hedeflerden biri de düşük tüketimi hedefidir.
Genel Konsept
Sırayla Yürütme
Eski işlemcilerde sırayla yürütme yapılmaktaydı ve talimatların işlenmesi aşağıdaki adımlarla gerçekleşiyordu:
- Talimat .
- Eğer girdi işlenenleri ulaşılabilir durumda ise talimat uygun işlev birimine iletilir, eğer bir ya da daha fazla işlenen, içinde bulunulan saat vuruşunda ulaşılamaz durumda ise işlemci, işlenenler ulaşılabilir duruma gelene kadar bekler.
- Talimat, ilgili işlev birimi tarafından yürütülür.
- Sonuçlar, yazmaç dosyasına geri yazılır.
Düzensiz Yürütme
Düzensiz yürütmede talimatların yerine getirilmesi aşağıdaki şekilde gerçekleştirilir.
- Talimat .
- Talimat, girer.
- İlgili talimattaki işlenen, kendisinden önce kuyruğa giren talimatta işlenmeyecekse diğer bir değişle ilgili kuyruğa kendisinden önce giren talimattaki işlenenin sonucu kendisini etkilemeyecekse, kuyruktaki sıradan bağımsız olarak, işlemci döngüsü harcamamak için öne alınır.
- Buyruk ilgili fonksiyonel birim tarafından işlenir.
- Sonuçlar kuyruğa girer.
- Sonuç, kendisinden önceki talimatların sonuçları işlemci kaydına yazıldıktan sonra kuyruktan çıkabilir ve işlemin sonucu, talimatta sonucunun kendisine yazılacağı belirtilmiş olan işlemci kaydına yazılır.
Düzensiz yürütmede amaç, işlenecek veriler ulaşılamaz durumda iken işlemcinin bekletilmesini önlemektir. Yukarıdaki sıralı yürütme basamaklarında 2. basamakta bulunan veri eksikliğinden oluşan işlemcinin boşta bekleme gerekliliği, düzensiz yürütme basamaklarında ortadan kaldırılmıştır. Sırasız yürütme yapan işlemciler gerekli olan bekleme süresini işlemeye hazır olan diğer buyruklarla doldurup, işlemlerin sonunda sonuçları sıraya sokarak işlemlerin program sırasına uygun olarak işlenmiş gibi görünmesini sağlar.
Buyrukların bilgisayar kodlarındaki orijinal sırasında program sırası, işlemcide ele alınma sırasına ise veri sırası denir. Veri sırası, verilerin işlemci yazmaçları tarafından ulaşılacak halde bulunup bulunmamasına göre belirlenir. Açıkçası, bir sıradan diğerine çevrim yapmak, sonuçların kuyruktan doğru sırada çıkmasını sağlamak için mantıksal bir sıra sürdürmek için karmaşık devreler gereklidir. Yeniden sıralama belleği sırasız yürütülen buyrukların yeniden program sırasına sokulması için kullanılır.
Sırasız yürütmenin faydaları boru hattının pratikte uygulanması derinleştikçe ve bellek ile işlemci hızları arasındaki fark arttıkça önem kazanmakta ve artmaktadır.
Dağıtım ve konu bağlantılarının kesilmesi
Yeni paradigmayla yaratılan farklılıklardan biri de, kuyrukların oluşturulması ile, dağıtım basamağının konu basamağı ile bağlantısının koparılması ve bitirilme aşamasının yürütme aşamasından ayrılmasına olanak tanımasıdır. Sıralı yürütüm yapan önceki işlemcilerde bu aşamalar, boru hattı kullanılarak, birbiri ardından aralık bırakmaksızın yapılmaktaydı.
Frekansı düşürecek yanlış terim bağımlılıklarından korunmak amacıyla yazmaçların tekrar adlandırılması adı verilen bir teknik kullanılır. Bu tasarımda, mimaride tanımlanmış olandan daha fazla sayıda yazmaç vardır. Fiziksel yazmaçlar aynı mimari yazmacın birçok versiyonu olabilecek şekilde işaretlenir.
Yürütme ve geri yazmanın birbirinden ayrılması
Kural dışı durumlar, dallanma tahmini hataları gibi çözülmesi gereken durumlar için sonuçların bir kuyrukta tutulması gereklidir. Sonuç kuyruğu, buyrukların program sırasına uygun olarak tamamlanabilmelerni sağlamak için, programların kural dışı bir durumdan sonra tekrar başlamasına izin verir. Sonuç kuyruğu sonuçların, eski buyrukların hatalı dallanma tahminleri ve kural dışı durumlarından ötürü iptal edilebilmesine olanak sağlar. Buyrukların önceki dallanmalarının çözümlemelerinin bildirilebilmesi yeteneğine şüpheli yürütüm denir.
Mikro-mimari seviyede değişiklikler
- Buyruklar merkezi bir kuyruğa mı yoksa birden fazla ayrık kuyruklara mı dağıtılır?
- IBM PowerPC işlemcileri farklı fonksiyonel birimler arasında dağıtılmış birçok kuyruk kullanırken, diğer sırasız yürütüm yapan işlemciler merkezi bir kuyruk kullanır. IBM dağıtılmış kuyruklar için rezervasyon durakları adı verilen bir terim kullanır.
- Güncel bir sonuç kuyruğu var mıdır veya sonuçlar direkt olarak yazmaç dosyasına mı kaydedilir? İkinci olarak, o an yürütülmekte olan her bir buyruğun yazmaç yeniden adlandırma bilgilerinin tutulduğu yazmaç haritası kuyruklama fonksiyonunu işletir.
- İlk Intel sırasız işlemcileri tekrar sıralama önbelleği adı verilen bir sonuç kuyruğu kullanırken, daha sonraki sırasız işlemciler yazmaç haritaları kullanır.
- Tam olarak söylemek gerekirse, Intel P6 ailesi işlemcilerinde hem yeniden sıralama önbelleği (ROB) hem de yazmaç haritası mekanizması (RAT) vardır. ROB bütünüyle dallanma tahmini hatalarını düzeltmek amacıyla tasarlanmıştır.
- Intel P6 ailesi ilk sırasız işlemciler arasında olmasına rağmen, hala INTEL'in amiral gemisi mikroişlemci ailesidir.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Sirasiz yurutum ya da Duzensiz yurutme Ingilizce out of order execution veya dynamic execution bilgisayar muhendisliginde gunumuz yuksek performansli islemcilerinde kullanilan yuksek gecikmeler sebebiyle harcanan kullanima sunan bir talimat yurutme yaklasimidir Tarihce1970 lerde ve 1980 lerin basinda bilgisayar mimarisinin ana arastirma alanlarindan biri olan sirasiz yurutum veri akis hesaplamasinin sinirli bir formudur Bu konuda Yale Patt tarafindan onemli bir akademik arastirma yapilmis ve yine onun simulatorunde sunulmustur James E Smith ve A R Pleszkun tarafindan 1985 yilinda yayinlanan makalede kural disi durumlardaki kesin davranislarin nasil koruncagi aciklanarak tasari tamamlanmistir Tartismali da olsa sirasiz yurutum kullanan ilk makine skor tahtasi kullanarak cakismalari cozumleyen CDC 6600 1964 olmustur Modern kullanimda skor tahtasi kullanimi okuduktan sonra yazma durumunda bekleme yapmasi ozelliginden oturu sirasiz yurutumun degil de daha cok sirali yurutumun bir parcasi olarak gorulmektedir Uc yil kadar sonra IBM 360 91 1966 sirasiz yurutumu tam olarak destekleyen Tomasulo algoritmasini tanitti 1990 yilinda sadece kayan nokta islemleriyle sinirli olmasina ragmen IBM ilk sirasiz mikroislemci olan POWER1 i tanitti Bundan sonra sirasiz yurutum IBM Motorola PowerPC 601 1993 Fujitsu HAL SPARC64 1995 Intel Pentium Pro 1995 MIPS R10000 1996 HP PA 8000 1996 AMD K5 1996 ve DEC Alpha 21264 1998 gibi one cikan orneklerle 1990 li yillarda daha yaygin hale geldi Sun UltraSPARC HP Intel Itanium Transmeta Crusoe Intel Atom ve IBM POWER6 ise bu akimin disinda kalan dikkat cekici orneklerdir 1990 li yillarin ortalarina kadar bu teknigin makinelerde temel tasarim olarak kendini gosterememesinin nedeni sirasiz yurutumun mantiksal karmasikligidir Bu sinifta bir makine olusturmak icin gerekli olan yuksek miktarda silikon alanin getirecegi yuksek maliyetlerden oturu fiyata duyarli marketlere hitap eden ureticiler hala bu paradigmayi kullanmamaktadir Sirasiz yurutum tasariminda ulasilmasi zor hedeflerden biri de dusuk tuketimi hedefidir Genel KonseptSirayla Yurutme Eski islemcilerde sirayla yurutme yapilmaktaydi ve talimatlarin islenmesi asagidaki adimlarla gerceklesiyordu Talimat Eger girdi islenenleri ulasilabilir durumda ise talimat uygun islev birimine iletilir eger bir ya da daha fazla islenen icinde bulunulan saat vurusunda ulasilamaz durumda ise islemci islenenler ulasilabilir duruma gelene kadar bekler Talimat ilgili islev birimi tarafindan yurutulur Sonuclar yazmac dosyasina geri yazilir Duzensiz Yurutme Duzensiz yurutmede talimatlarin yerine getirilmesi asagidaki sekilde gerceklestirilir Talimat Talimat girer Ilgili talimattaki islenen kendisinden once kuyruga giren talimatta islenmeyecekse diger bir degisle ilgili kuyruga kendisinden once giren talimattaki islenenin sonucu kendisini etkilemeyecekse kuyruktaki siradan bagimsiz olarak islemci dongusu harcamamak icin one alinir Buyruk ilgili fonksiyonel birim tarafindan islenir Sonuclar kuyruga girer Sonuc kendisinden onceki talimatlarin sonuclari islemci kaydina yazildiktan sonra kuyruktan cikabilir ve islemin sonucu talimatta sonucunun kendisine yazilacagi belirtilmis olan islemci kaydina yazilir Duzensiz yurutmede amac islenecek veriler ulasilamaz durumda iken islemcinin bekletilmesini onlemektir Yukaridaki sirali yurutme basamaklarinda 2 basamakta bulunan veri eksikliginden olusan islemcinin bosta bekleme gerekliligi duzensiz yurutme basamaklarinda ortadan kaldirilmistir Sirasiz yurutme yapan islemciler gerekli olan bekleme suresini islemeye hazir olan diger buyruklarla doldurup islemlerin sonunda sonuclari siraya sokarak islemlerin program sirasina uygun olarak islenmis gibi gorunmesini saglar Buyruklarin bilgisayar kodlarindaki orijinal sirasinda program sirasi islemcide ele alinma sirasina ise veri sirasi denir Veri sirasi verilerin islemci yazmaclari tarafindan ulasilacak halde bulunup bulunmamasina gore belirlenir Acikcasi bir siradan digerine cevrim yapmak sonuclarin kuyruktan dogru sirada cikmasini saglamak icin mantiksal bir sira surdurmek icin karmasik devreler gereklidir Yeniden siralama bellegi sirasiz yurutulen buyruklarin yeniden program sirasina sokulmasi icin kullanilir Sirasiz yurutmenin faydalari boru hattinin pratikte uygulanmasi derinlestikce ve bellek ile islemci hizlari arasindaki fark arttikca onem kazanmakta ve artmaktadir Dagitim ve konu baglantilarinin kesilmesiYeni paradigmayla yaratilan farkliliklardan biri de kuyruklarin olusturulmasi ile dagitim basamaginin konu basamagi ile baglantisinin koparilmasi ve bitirilme asamasinin yurutme asamasindan ayrilmasina olanak tanimasidir Sirali yurutum yapan onceki islemcilerde bu asamalar boru hatti kullanilarak birbiri ardindan aralik birakmaksizin yapilmaktaydi Frekansi dusurecek yanlis terim bagimliliklarindan korunmak amaciyla yazmaclarin tekrar adlandirilmasi adi verilen bir teknik kullanilir Bu tasarimda mimaride tanimlanmis olandan daha fazla sayida yazmac vardir Fiziksel yazmaclar ayni mimari yazmacin bircok versiyonu olabilecek sekilde isaretlenir Yurutme ve geri yazmanin birbirinden ayrilmasiKural disi durumlar dallanma tahmini hatalari gibi cozulmesi gereken durumlar icin sonuclarin bir kuyrukta tutulmasi gereklidir Sonuc kuyrugu buyruklarin program sirasina uygun olarak tamamlanabilmelerni saglamak icin programlarin kural disi bir durumdan sonra tekrar baslamasina izin verir Sonuc kuyrugu sonuclarin eski buyruklarin hatali dallanma tahminleri ve kural disi durumlarindan oturu iptal edilebilmesine olanak saglar Buyruklarin onceki dallanmalarinin cozumlemelerinin bildirilebilmesi yetenegine supheli yurutum denir Mikro mimari seviyede degisikliklerBuyruklar merkezi bir kuyruga mi yoksa birden fazla ayrik kuyruklara mi dagitilir IBM PowerPC islemcileri farkli fonksiyonel birimler arasinda dagitilmis bircok kuyruk kullanirken diger sirasiz yurutum yapan islemciler merkezi bir kuyruk kullanir IBM dagitilmis kuyruklar icin rezervasyon duraklari adi verilen bir terim kullanir Guncel bir sonuc kuyrugu var midir veya sonuclar direkt olarak yazmac dosyasina mi kaydedilir Ikinci olarak o an yurutulmekte olan her bir buyrugun yazmac yeniden adlandirma bilgilerinin tutuldugu yazmac haritasi kuyruklama fonksiyonunu isletir Ilk Intel sirasiz islemcileri tekrar siralama onbellegi adi verilen bir sonuc kuyrugu kullanirken daha sonraki sirasiz islemciler yazmac haritalari kullanir Tam olarak soylemek gerekirse Intel P6 ailesi islemcilerinde hem yeniden siralama onbellegi ROB hem de yazmac haritasi mekanizmasi RAT vardir ROB butunuyle dallanma tahmini hatalarini duzeltmek amaciyla tasarlanmistir Intel P6 ailesi ilk sirasiz islemciler arasinda olmasina ragmen hala INTEL in amiral gemisi mikroislemci ailesidir