İlk bilgisayarlar tamamen sıralıydı. Bir sonrakinin başlatılabilmesi için işlemcinin aldığı her talimatın eksiksiz olarak tamamlanması gerekiyordu. Çoğu talimatın beş aşaması vardır: Talimat getirme, Talimat kod çözme, Yürütme, Hafıza erişimi ve Geri Yazma. Sırasıyla bu aşamalar tamamlanması gereken talimatı alır, işlemi yapılan değerlerden ayırır. çalıştırılır, işlemi yürütür, sonucun yazılacağı register'ı açar ve açılan kütüğe sonucu yazar. Kayıt ol.
Bu aşamaların her birinin tamamlanması bir döngü almalıdır. Ne yazık ki, veriler bir kayıtta değilse, CPU önbelleğinden veya sistem RAM'inden istenmelidir. Bu, düzinelerce veya yüzlerce saat gecikme süresi ekleyerek çok daha yavaştır. Bu arada, başka hiçbir veri veya talimat işlenemeyeceği için diğer her şeyin beklemesi gerekir. Bu tür işlemci tasarımına, saat döngüsü başına bir komuttan daha az çalıştırdığı için alt ölçekler denir.
skalere boru hattı
Bir sistem hattı uygulanarak bir skaler işlemci elde edilebilir. Yürütülen bir talimatın beş aşamasının her biri, gerçek işlemci çekirdeğindeki farklı donanım bitlerinde çalışır. Böylece, her aşama için donanıma beslediğiniz verilere dikkat ederseniz, her döngüde her birini meşgul edebilirsiniz. Mükemmel bir dünyada, bu 5 kat hızlanmaya ve işlemcinin döngü başına tam talimat çalıştırarak mükemmel skaler olmasına yol açabilir.
Gerçekte, programlar karmaşıktır ve verimi azaltır. Örneğin, "a = b + c" ve "d = e + f" olmak üzere iki ekleme talimatınız varsa, bunlar sorunsuz bir işlem hattında çalıştırılabilir. Bununla birlikte, "a = b + c" ve ardından "d = a + e" varsa, bir sorununuz var demektir. Bu iki komutun birbirini takip ettiğini varsayarsak, “a”nın yeni değerini hesaplama işlemi tamamlanmayacaktır, ikinci komut “a” nın eski değerini okumadan ve sonra yanlış cevap vermeden önce hafızaya geri yazılmayı bırakın. "d".
Bu davranış, yaklaşan talimatları analiz eden ve bir diğerine bağımlı olan hiçbir talimatın çok yakın arka arkaya çalıştırılmamasını sağlayan bir göndericinin dahil edilmesiyle karşılanabilir. Aslında bunu düzeltmek için programı yanlış sırada çalıştırıyor. Bu işe yarar, çünkü birçok talimat mutlaka bir öncekinin sonucuna dayanmaz.
Boru hattını süperskalara genişletmek
Bir süperskalar işlemci, döngü başına birden fazla tam talimat çalıştırabilir. Bunu yapmanın bir yolu, boru hattını, her aşamayı işleyebilecek iki veya daha fazla donanım biti olacak şekilde genişletmektir. Bu şekilde, her döngüde boru hattının her aşamasında iki talimat olabilir. Bu, donanım çoğaltıldığı için açıkça artan tasarım karmaşıklığına neden olur, ancak mükemmel performans ölçeklendirme olanakları sunar.
Artan boru hatlarından kaynaklanan performans artışı, ancak şimdiye kadar verimli bir şekilde ölçeklenir. Termal ve boyut kısıtlamaları bazı sınırlamalar getirir. Ayrıca önemli zamanlama komplikasyonları da vardır. Etkin bir gönderici, iki talimat setinden hiçbirinin işlenmekte olan diğer talimatların herhangi birinin sonucuna bağlı olmamasını sağlamak zorunda olduğundan, artık daha da kritiktir.
Dal tahmincisi, bir işlemci ne kadar yüksek derecede skaler olursa o kadar kritik hale gelen sevk aracının bir parçasıdır. Bazı talimatların, her biri farklı talimatlara yol açan iki potansiyel sonucu olabilir. Basit bir örnek, bir "if" ifadesi olabilir. "Bu doğruysa şunu yap, yoksa başkasını yap". Bir dal tahmincisi, bir dallanma işleminin sonucunu tahmin etmeye çalışır. Ardından, olası sonuç olduğuna inandığı şeyi izleyerek talimatları önceden planlar ve yürütür.
Modern dal tahmincilerinde, %98 mertebesinde şube tahmini başarı oranlarıyla sonuçlanabilecek çok sayıda karmaşık mantık vardır. Doğru bir tahmin, gerçek sonucu beklerken boşa harcanabilecek zamandan tasarruf sağlar, yanlış bir tahmin, tahmin edilen sonucun alınmasını gerektirir. talimatlar ve sonuçlarından herhangi biri atılır ve gerçek talimatlar yerlerinde çalıştırılır; bekledi. Bu nedenle, yüksek tahmin başarı oranları, performansı gözle görülür şekilde artırabilir.
Çözüm
Bir bilgisayar işlemcisi, saat döngüsü başına birden fazla talimat gerçekleştirebiliyorsa, süperskalar olarak kabul edilir. İlk bilgisayarlar tamamen sıralıydı ve bir seferde yalnızca bir talimat çalıştırıyordu. Bu, her komutun tamamlanmasının birden fazla döngü alması anlamına geliyordu ve bu nedenle bu işlemciler alt ölçeklerdi. Bir talimatın her aşaması için aşamaya özel donanımın kullanılmasını sağlayan temel bir işlem hattı, saat döngüsü başına en fazla bir talimat yürütebilir ve bu da onu skaler hale getirir.
Hiçbir bireysel talimatın tek bir saat döngüsünde tam olarak işlenmediğine dikkat edilmelidir. Hala en az beş döngü sürer. Bununla birlikte, birden fazla talimat aynı anda boru hattında olabilir. Bu, döngü başına bir veya daha fazla tamamlanmış talimatın çıktısına izin verir.
Superscalar, hiper ölçekli bilgi işlem kaynakları sunabilen şirketlere atıfta bulunan hiperscaler ile karıştırılmamalıdır. Hiper ölçekli bilgi işlem, bilgi işlem, bellek, ağ bant genişliği ve depolama gibi donanım kaynaklarını taleple sorunsuz bir şekilde ölçeklendirme yeteneğini içerir. Bu genellikle büyük veri merkezlerinde ve bulut bilişim ortamlarında bulunur.