Artan ölçülerde parallelik gerçekleştirilmesinde kullanılan en basit yöntemlerden biri bir evvelki komutun uygulanması tamamlanmadan önce getirme (fetching) ve kod çözme (decoding) komutunun ilk aşamalarına başlanmasıdır. Bu, komut boruhatlaması diye bilinen bir tekniğin en basit şeklidir ve hemen hemen bütün çağdaş genel amaçlı Cpu’larda kullanılmaktadır. Boruhatlama, uygulama yörüngesinin birbirinden ayrı aşamalara bölünmesiyle, birden çok sayıda komutun belirli bir zamanda uygulanmasına olanak sağlamaktadır. Bu ayırma, uygulama dizisinden dışarı çıkana ve çekilinceye kadar, her bir aşamada verilen bir komutun daha tam duruma getirildiği bir montaj hattıyla karşılaştırılabilir.
Bununla birlikte, boruhatlama, bir evvelki işlemin sonucuna bir sonraki işlemi tamamlamak için gereksinme olduğu bir durumun olasılığını getirmektedir; böyle bir duruma çoğu kez veriye bağımlılık çatışması denmektedir. Bununla başa çıkılması için, bu türden koşullar için varlığını kontrol etmek için ek dikkat gösterilmesi gerekmekte ve bu çatışma meydana geldiği takdirde komut boruhattının bir kısmı gecikmektedir. Doğal olarak, bunu gerçekleştirilmesi ek devre donanımını gerektirmekte ve böylece boruhatlı işlemciler skalar altı işlemcilerden çok daha karmaşık (her ne kadar bu pek önemli değilse de) olmaktadırlar. Boruhatlı işlemciler hemen hemen skalar olabilir ve sadece boruhattı durmasıyla (bir aşamada bir saatten fazla çevrim harcanmasına neden olan komut) engellenebilir.
Komut boruhatlama fikri üzerinde bir diğer geliştirme CPE bileşenlerinin boşta geçen zamanlarını daha da azaltan bir yöntemin uygulanmasına yol açmıştır. Skalar üstü oldukları söylenilen tasarımlar, uzun bir komut boruhatlamasını ve çok sayıda bir birinin benzeri uygulama birimini içermektedir. Bir skalar üstü boruhattında, çok sayıda komut okunmakta ve bir göndericiye geçirilmekte, bu gönderici ise paralel olarak (yani aynı anda) bu komutların uygulamya konulup konulamayacaklarına karar vermektedir. Aynı anda uygulamaya konulmalarının üzerine, bunlar elde mevcut uygulama birimlerine gönderilmekte, bu da çok sayıda komutun aynı anda uygulanmalarının mümkün olmasıyla sonuçlanmaktadır. Genel olarak, beklemede bulunan uygulama birimlerine bir skalar üstü Cpu ne ölçüde daha fazla aynı anda komut gönderebilir ise, belirli bir çevrim içerisinde o kadar daha fazla sayıda komut tamamlanmış olacaktır.
Skalar üstü Cpu yapımının tasarımında güçlüğün çoğu etkili bir göndericinin yaratılmasında ortaya çıkmaktadır. Göndericinin, komutların paralel olarak yapılmasının mümkün olup olmadığını çabucak ve doğru biçimde belirlemeye, aynı zamanda da mümkün olduğu kadar çok uygulama biriminin meşgul edilebileceği tarzda bunları gönderme becerisinde olması gerekliliği vardır. Bu ise, komut boruhatlamasının mümkün olduğu ölçüde sık doldurulmasını gerektirmekte ve skalar üstü yapımlarda büyük miktarlarda Cpu önbelleğinin bulunması gereksinmesine yol açmaktadır. Aynı zamanda da, bölüm tahmini (branch prediction), spekülasyona dayalı ugulama, sıradışı uygulama gibi tehlikeden sakınan teknikleri performansı yüksek düzeylerde tutulması için önemli yapmaktadır. Koşula bağlı bir komutun hangi kolu veya hangi yolu seçeceğini önceden kestirmeye kalkışmakla, Cpu bir koşullu komutun tamamlanmasına kadar tüm boruhattı düzenin beklemesi gereken zaman sayısını en aza indirebilir. Spekülatif uygulama çoğu kez koşullu bir işlemin tamamlanmasından sonra gereksinme duyulabilecek veya duyulmayabilecek kod bölümlerinin uygulamaya konmasıyla ılımlı ölçülerde performans artışları sağlanmaktadır. Sıra dışı uygulama bir ölçüde veri bağımlılıklarından ötürü meydana gelen gecikmeleri azaltmak bakımından komutların uygulamaya konuluş sırasını bir ölçüde yeniden düzene sokmaktadır.
Cpu’nun bir bölümünün skalar üstü olduğu, diğer bölümünün ise olmadığı durumlarda, skalar üstü olmayan bölüm programda duraklamalar dolayısıyla performans sorunu yaşamaktadır. Orijinal Intel Pentium (P5)’te iki skalar üstü ALU bulunmakta idi ve bunlardan herbiri saat başına bir komut kabul edebilmekteydi, ancak bunun FPU’su saat başına bir komut kabul edememekteydi. Böylece P5 tamsayı skalar üstü idi ancak gezer noktalı skalar değildi. Intel’in Pentium mimarisinin varisi, P6, gezer notkalı özelliklerine skalar üstü yetenekler ilave etmiştir, ve bu nedenle de gezer nokta komut performansında önemli artış kaydetmiştir.
Gerek basit komut boruhatlaması gerekse skalar üstü tasarım, tek bir işlemcinin çevrim başına bir komutu aşan hızlarda komutların yapılmasını tamamlamaya olanak vermesiyle Cpu’nun ILP’sini arttırmaktadır. Çağdaş Cpu tasarımlarının çoğu en azından bir dereceye kadar skalar üstüdür ve son on yılda tasarlanmış bulunan hemen hemen genel amaç kullanımlı Cpu’ların çoğu skalar üstüdür. Daha sonraki yıllarda, yüksek ILP’li bilgisayarların tasarımında vurgulama bir ölçüde Cpu donanımından uzaklaşmış ve yazılım ara birimine veya ISA’ya geçmiştir. Çok uzun komut kelimesi (VLIW) stratejisi bazı ILP’lerin yazılım tarafından doğrudan doğruya işe karıştırılmasına neden olmakta, bu ise ILP’yi desteklemek bakımından Cpu’nun yapması gerken iş miktarını azaltmakta, bu da tasarımın karmaşıklığını azaltmaktadır.
Bir Teşekkür Yeter