Bunu kavrayamıyorum, süperskalar ve çok çekirdekli işlemci arasındaki fark nedir?
Onları karıştırmaya devam ediyorum, bu yüzden yaptıklarıyla ilgili bazı basit noktalar harika olurdu.
Bunu kavrayamıyorum, süperskalar ve çok çekirdekli işlemci arasındaki fark nedir?
Onları karıştırmaya devam ediyorum, bu yüzden yaptıklarıyla ilgili bazı basit noktalar harika olurdu.
Yanıtlar:
Süper skaler işlemciler, tek bir saat döngüsü sırasında birden çok yönerge gönderdiğiniz anlamına gelir. Bunun çok çekirdekten farklı olmasının nedeni, yalnızca bir komut sayacı almanızdır. Böylece uçuş sırasında birden fazla talimatı takip edebilirsiniz, ancak tüm talimatlar tek bir programdan alınmıştır. Bu hala sadece bir süreç. Şimdi "bir talimat sayacı alın" dedim ve teknik olarak bu, bazı şube tahmin şemalarını kullanmak dışında kodunuzun bir eşitsizlik yaşayacağı hiçbir nokta olmadığı için doğrudur (Spekülatif Yürütme: aynı anda her iki dalı yürütür ve "yanlış" "tahmin sonucu).
Çok çekirdekli sisteme girdiğinizde, aynı anda çalışan birden fazla komut akışınız olur. Önemli olan, her bir çekirdeğin (kendi talimat sayacıyla yürütme) her bir işlemi daha hızlı yürütmek için süper skaler olabilmesidir!
Çok uzun komut kelimesi veya "VLIW" olarak adlandırılan boru hattı veya sıra dışı yürütme olmadan süper skalere sahip olmak mümkündür. Buna "statik" süper skaler de denir (yani kodun kendisindedir). Bu, temel olarak aynı anda birden fazla talimatı yürütmek için yeterli bileşene sahip olduğunuz ve birden fazla talimatı aynı anda alıp çalıştırdığınız yerdir. En basit haliyle, "bu işlemci her zaman aynı anda iki talimat getirir ve uygular" dediğini düşünün. Kodlayıcı aynı süreçte aynı anda yapılacak işi bulabildiği sürece iş hacminizi iki katına çıkarırsınız! Bir araya getirmek için iki talimat bulamazsanız, sadece bir talimat ve bir NOP eşleştirebilirsiniz. Bu fikir çok iyi değil, çünkü aynı anda 3, 4 veya daha fazla talimat çalıştırabilen işlemcinin daha iyi bir sürümünü yaparsanız, tüm eski kodlarınız bozulur! Ama bunu oldukça dahice bir şekilde çözdüler, daha fazla bilgi edinmek istiyorsanız açıkça paralel talimat hesaplama veya "EPIC" şeylerini kontrol etmelisiniz.
Boru hattına sahip dinamik süper skalar, hem veri bağımsız talimatlardan hem de talimat düzeyinde paralellikten yararlanabilir, bu da onu bu kadar güçlü bir kombinasyon haline getirir. Temel olarak, yeterli donanım ile mümkün olduğunca çok sayıda bağımsız talimatı aynı anda yürütmenizi sağlar.
Boru hattı ve sıra dışı yürütme ile dinamik süper skalar aslında talimat düzeyinde paralellik sınırlamasıydı: veri bağımlılıkları olmadan çalışan işlemleri bulmaya çalışarak aynı anda birden fazla talimatı aynı anda denemeye ve yürütmeye çalışacaksınız. Arızalı olarak bitirebilirsiniz, arızalı olarak başlayabilirsiniz, süper skaler şeyler yaparken başınızı düz tutmak için yapmanız gereken her türlü şey vardır. Çok çekirdekli "hey programcı! Aynı anda çözebileceğim birden fazla sorun ver!" ve daha sonra programcı, derlenmiş montajda birbirinden bağımsız birkaç satır ötesinde bağımsız olarak çözülebilen problemleri görebildiğinden, bu çözümleri çok çekirdekli için daha verimli bir şekilde programlayabilir.
Süper skaler, "bu iki programı nasıl daha hızlı yürütebilirim" gibi sorunları bile çözemez. Her bağımsız programı daha hızlı çalıştırabilir.
Umarım yardımcı olur, eğer biraz ayrıksa özür dilerim.
--Düzenle--
Ajs410'un birden çok fikri karıştırdığımı dikkate alacak şekilde değiştirildi.
80486 veya Pentium gibi önceki işlemcilere bakarsanız, CPU tek bir mantıksal işlem birimiydi. Bir seferde tek bir talimat akışı yürütür. Tek bir CPU da tek bir silikon çipti. Daha fazla işlem gücü istiyorsanız, iki ayrı CPU'ya sığacak yuvaları olan pahalı bir sunucu anakartı satın alabilirsiniz. Sonra iki CPU makineniz ve iki işlem çekirdeğiniz vardı.
Bir noktada Moore Yasası, silikonda çok fazla transistörün olduğu anlamına geliyordu, böylece iki CPU'nun tüm devrelerini tek bir çipe yerleştirebiliyordunuz. Artık karışıklığı adlandırma potansiyeline sahipsiniz. İki CPU'nuz olduğunu söylemek, eski stil iki silikon pakete veya daha yeni tek silikon pakete sahip olduğunuz anlamına gelebilir, ancak iki işlemcinin işleme kurulumuyla. Bunu çözmek için şimdi CPU'nun tek bir silikon paketi ve Core'un içinde tek bir mantıksal işlem birimi olduğunu kastediyoruz.
Süper skaler, bir çekirdek içinde performansı denemek ve artırmak ve ortalama olarak döngü başına daha fazla talimat işlemesine izin vermek için kullanılan bir tekniği ifade eder. Skaler işlemci, döngü başına en fazla bir komut yürütür, süper skaler, potansiyel olarak döngü başına birden fazla komut yürütebileceği anlamına gelir. Örneğin, işlemcinin tamsayı aritmetiği için işlevsel bir birimi ve kayan nokta için başka bir birimi varsa, neden aynı anda iki komutu yürütmek için ikisini birden kullanmıyorsunuz? Üç tamsayı biriminiz ve iki kayan nokta biriminiz varsa ne olur? Artık paralel yürütme için daha büyük bir potansiyeliniz var. Ancak, uygulama için daha fazla transistöre ve güvenilir bir şekilde çalışması için çok daha karmaşık mantığa ihtiyacınız vardır. Gerçek dünyada, sıra dışı tasarımlarla birlikte kullanılan süper skaler alma eğilimindedir, çünkü birbirlerini tamamlarlar.