İçeriğe atla

Veri sorunları

Veri sorunları, bir önceki işlemde henüz tamamlanmayan bir veri kullanılmak istenirse oluşmaktadır. Tam başarımda çalıştırabilmek için, boru hattının ilk komut yürütülürken sonradan gelen 4 bağımsız komutu da çalıştırmaya başlaması gerekmektedir. Eğer bu 4 komutun, ilk komutun çıkışıyla alakası yoksa bu bağımlılık durumu ortadan kalkıncaya kadar boru hattının mantık kontrol birimi araya bir kesme ya da bekletme sokmalıdır. Yürütmeyi ilerletmek gibi teknikler, programı durdurmak gibi olası durumları önemli ölçüde azaltırlar. Boru hattı kullanılan sistem, kullanılmayan sisteme göre daha hızlı olmasına karşın, birçok program kodu normal işletim hızını değiştirmeye izin vermemektedir. İşlemin gerçekleştirilmesi için bir önceki işlem tamamlanmalı, bir sonraki işlem geciktirilmeli veya "yönlendirme" yapılmalıdır (Yönlendirme yükleme buyruklarında her zaman sorunu çözemeyebilir. Örneğin; yüklemeden sonra gelen bir buyruk, yükleme yapılan yazmacı okumak isterse burada sorun ortaya çıkar. Bu durumda sorunu çözmek için komutu durdurmamız/geciktirmemiz gerekir). Veri sorunu yükleme komutlarında da karşımıza çıkabilir. Eğer yükleme komutundan sonra gelen bir başka komut, yüklemenin yapılacağı yazmacı kullanmak isterse veri sorunu oluşur ve yüklemeden sonra gelen komutu durdurmamız gerekir. Bunun için de ayrı bir denetim birimi gerekir. Bunun dışında boru hattını, bir komutu sonraki aşamaya geçirmeyerek tıkayabiliriz (baloncuk ile).

Örnek

MOVE r1, r2
LW r3, (r1)
ADD r1, r1, 7
LW r5, (r1)

Yukarıda bulunan örnek ile "zaman içinde geriye doğru" bağımlılıkla, veri sorununu karşımıza çıkarmakta. Örnekte görüldüğü gibi; taşıma komutunda r1 yazmacına r2 yazmacındaki değer yazılıyor. Yükleme işleminde, r1 yazmacının adresindeki değerin r3 yazmacına yüklenmesi isteniyor. Ancak taşıma komutundaki işlem henüz gerçekleşmediği için yükleme işleminin geciktirilmesi gerekiyor. Toplama işleminde de r1 yazmacı kullanılıyor. Bu işlem de ancak r1 yazmacına taşıma komutundaki değer yazılınca başlayacaktır. Sonuncu yükleme komutunda, bir üstündeki toplama işleminde r1 yazmacına değer kaydedileceği için yine bir bağımlılık söz konusudur. Toplama işlemindeki değer kaydedilene kadar alt satırdaki yükleme komutu başlayamaz. Bu durumda ilk yöntem r1 yazmacına değerin yazılmasını beklemek (bir sonraki komutu geciktirerek), ikinci yöntem ise yönlendirme yaparak sorunu çözmektir. Aşağıda bulunan çizelgede bu komutların boru hattı yöntemi ile kaç çevrimde yapıldığı gösterilmiştir.

İlgili Araştırma Makaleleri

Komut kümesi mimarisi, CPU'nun yazılım tarafından nasıl kontrol edileceğini tanımlayan bilgisayar soyut modelinin bir parçasıdır. ISA, işlemcinin ne yapabileceğini ve bunu nasıl yapacağını belirterek donanım ve yazılım arasında bir arayüz gibi davranır.

MIPS, Microprocessor without Interlocked Pipeline Stages, MIPS teknolojileri adlı firma tarafından 1985 yılında geliştirilmiş indirgenmiş komut kümesi türü bir mikroişlemci mimarisidir.

İşlemci önbelleği, CPU'nun hafızadaki verilere ulaşma süresini azaltan bir donanımdır. Ana belleğe(RAM) kıyasla küçük, hızlı ve işlemci çekirdeğine yakındır. Sık kullanılan veriler ya da en güncel veriler işlemci önbelleğinde saklanır. Günümüzde pek çok CPU, birden çok seviyede önbellek içerir, bu önbellekler verilerin yanı sıra komutları da bünyesinde tutar.

Veri yolu, bilgisayar yapısında, bilgisayarın içindeki parçalar arasında ya da bilgisayarlar arasında verileri ya da gücü transfer eden bir alt sistemdir ve genellikle aygıt yürütme yazılımı tarafından kontrol edilir. Nokta- nokta bağlantısının tersine, veri yolu, birçok çevresel aygıtı aynı takım kablo ile mantıksal olarak bağlayabilir. Her bir veri yolu kendi bağlayıcılarını fiziksel fiş aygıtlarına, kartlara veya kabloların tümüne karşı tanımlar.

Boru hattı yöntemi bilgisayar mimarisi ve diğer sayısal ürünlerin tasarımında başarımı artırmak için uygulanan bir yöntemdir. Komutları, boru hattı yöntemi ile işleyip daha kısa süre içinde bitmesini sağlar. Asıl amacı saat sıklığını artırarak başarımı artırmaktır. Farklı kaynakları aynı anda, farklı işler tarafından kullanarak çalışır.

<span class="mw-page-title-main">Bilgisayar mimarisi</span>

Bilgisayar mimarisi, en küçüğe ve en başarılıya ulaşmayı hedeflerken aynı zamanda maliyeti de göz önünde bulundurduğu için sanat ve bilimin ortak buluştuğu nokta olarak da tanımlanır. Bilgisayar Mimarisi, bilgisayar parçalarının iç yapıları ve aralarındaki haberleşme bağlantıları ile ilgilidir.

Dallanma Öngörüsü, bilgisayar mimarisinde çalıştırılacak programın buyruk kümesi içindeki dallanma buyruklarına gelindiğinde koşula göre atlanacağını ya da atlanmayacağını önceden varsayarak veya geçmişine bakıp tahmin ederek öngörüde bulunma işidir. Bugünkü işlemcilerin tasarımında boru hattı (bilgisayar) yöntemi kullanıldığı ve başarım hedeflerinin yüksek olduğu düşünüldüğünde bir dallanmada hangi yöne gidileceğini yüksek doğrulukta tahmin etmek kaçınılmaz olmuştur. Bu öngörü işlemciye dallanmanın sonucunu beklemeden diğer buyrukları işleme imkânı verir. Bu da zamandan kazanç anlamına gelir ki başarımı yükseltir. Bu arada da işlemcinin şimdiki buyruğun işlenmesi bitmeden sonraki buyruğun adresini bilmesi gerekir.

Yazmaçların yeniden adlandırılması, işlemcilerde, yürütülen buyruklardaki, aynı yazmaçların tekrar kullanımından doğan sahte bağımlılıkları gidermek için kullanılan bir yöntemdir.

<span class="mw-page-title-main">Itanium işlemcisi</span>

Itanium işlemcisi, Intel firmasının 64-bit işlemci ailesinden olup IA-64 mimarisi kullanan işlemcilerinin devamı olarak bilinir. Itanium ve Itanium2 olarak sunulan bu işlemci ilk olarak Ekim 2001'de piyasaya sürülmüştür. Itanium işlemcilerin asıl hedefi yüksek performansa sahip bilgisayarlardı. Bu işlemcinin mimarisinin gelişimi ilk olarak Hewlett-Packard tarafından yapılmıştır ve devamında ise Intel ve Hewlett-Packard ortak olarak birlikte gerçek Itanium mimarisini geliştirmişlerdir.

Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.

Sırasız yürütüm ya da Düzensiz yürütme, bilgisayar mühendisliğinde, günümüz yüksek performanslı işlemcilerinde kullanılan, yüksek gecikmeler sebebiyle harcanan işlemci döngülerini kullanıma sunan bir talimat yürütme yaklaşımıdır.

Döngü açma, programın çalışmasını hızlandıran döngü dönüştürme yöntemlerinden biridir. Bu yöntem yazılan programın kod satır sayısını artırmaktadır. Döngülerdeki dönüşüm manuel olarak programcı tarafından yapılabileceği gibi kodlar derleyiciler tarafından da düzenlenebilmektedir.

<span class="mw-page-title-main">Alpha 21064</span>

Alpha 21064, Alpha(Alpha APX olarak ortaya çıkan) buyruk kümesi mimarisini(ISA) oluşturan Digital Equipment Corporation tarafından geliştirilmiş bir mikroişlemcidir. 1994 yılında ismi değiştirilmeden önce DECchip 21064 olarak bilinirdi.Ayrıca EV4 kod adıyla da bilinmektedir. 1992 şubat ayında tanıtılmış ve aynı yıl eylül ayında yeni sürüm olanağı sağlanmıştır.21064, ilk ticari Alpha ISA uygulamasıdır. Ayrıca Ekim 1993'te, 21064'ten türeyen Alpha 21064A ticari amaçla kullanılan ilk mikroişlemci olmuştur.

Çok uzun buyruk kelimesi, buyruk düzeyindeki paralelliğin avantajından yararlanmak için geliştirilmiş bir işlemci tasarımıdır. Her buyruğu arka arkaya çalıştıran işlemciler, işlemci kaynaklarını verimsiz bir şekilde kullanabilmekte ve bu durum da başarımın düşmesine neden olmaktadır. Başarım, sıralı çalışan buyrukların çalıştırılma basamaklarında farklı aşamalarda olmasıyla veya aynı anda birden fazla buyruğun birbirinden bağımsız olarak çalıştırılmasıyla arttırılabilir. Bu yöntemlerin daha da iyileştirilmesi, buyrukların programdaki sırasından farklı bir sırada çalıştırılması ile sağlanabilir; bu yönteme de Sırasız yürütüm denir.

<span class="mw-page-title-main">Alpha 21164</span>

Alpha 21164, aynı zamanda Alpha buyruk kümesi mimarisini geliştirmiş olan Digital Equipment Corporation tarafından geliştirilmiş, EV5 kod adıyla da bilinen bir mikroişlemcidir. Alpha 21164 Digital'in en çok satışı yapılan mikroişlemcisi Alpha 21064A'yı takiben 1995 yılı Ocak ayında tanıtılmıştır. Onu 1998 yılında 21264 izleyecektir.

<span class="mw-page-title-main">Alpha 21264</span>

Alpha 21264 1996 yılı Ekim ayında Digital Equipment Corporation tarafından indirgenmiş komut takımı bilgisayarı(RISC) mikroişlemcisi olarak tanıtılmıştır. 21264 Alfa işlemcisi Komut kümesi ile tanımlanmıştır.

NetBurst, İntel'in 2000 yılında piyasaya sürdüğü Pentium 4 işlemci markasının mikromimarisine verilen isimdir. 2006 Temmuz'unda Core mikromimarisinin çıkışına kadar İntel işlemcilerin mikromimarisi olmuştur. Selefi P6 mikromimarisine göre en önemli özelliği derin boru hattı yapılanmasıyla avantaj sağladığı yüksek saat sıklığıdır. Temel olarak dört ana parçadan oluşmaktadır: Sıralı(ing. In-order) Ön-Uç(ing. Front-end), Sırasız(ing. out-of-order) yürütme birimi, Tam sayı ve kayan nokta yürütme birimleri ve bellek altdizgesi.

<span class="mw-page-title-main">Nehalem (mikromimari)</span>

Nehalem, İntel firmasının Eylül 2008'de piyasaya sürülen Core i7 işlemcisiyle birlikte kullanılmaya başlanmıştır. 2011'de Sandy Bridge mikromimarisi sunulana kadar İntel'in en gelişmiş mikromimarisi olarak piyasada kalmıştır. Selefi Core mikromimarisine göre paralelliği ve saat frekansını arttırmış, Core mikromimarisinde İntel'in kullanmadığı fakat daha önce NetBurst'de kullanılan Hyper Threading teknolojisi Nehalem ile tekrar kullanılmaya başlamıştır. Nehalem'le birlikte Core mikromimarisinde terkedilmiş olan üçüncü seivye bir önbellek de yonganın içerisine eklenmiştir. İntel, Nehalem ile ilk defa bellek denetim birimini işlemci yongasının içine koymuş ve front-side bus dan ayırmıştır.

Matematiksel modellerin çözümünde kullanılır. Model kısıtlarından en az birisinin = veya => olması gerekir. Bu çözüm yönteminin bir türevide iki aşamalı yöntemdir. Büyük M yönteminde amaç satırındaki katsayılar M katsayısını alırlar. M katsayısı model içerisindeki hiçbir katsayının ulaşamayacağı kadar büyük bir sayı kabul edilmektedir.

Mano makinesi teorik olarak M. Morris Mano tarafından tanımlanan bir bilgisayardır. Bir merkezi işlem birimi, rasgele erişimli bellek ve bir giriş-çıkış veri yolu içerir. Sınırlı buyruk kümesi ve küçük adres alanı, mikrodenetleyici olarak kullanılmasını sınırlar. Ancak Verilog veya VHDL gibi bir HDL dili kullanılarak 32 bitlik bir birikeç (akümülatör) yazmacına ve 28 bitlik adreslemeye sahip olacak ve yeni talimatlar için yer açacak şekilde kolayca genişletilebilir.