Süperskalar

Bir süperskalar CPU tasarımı, tek bir CPU içinde Talimat düzeyinde paralellik adı verilen ve aynı saat hızında daha fazla iş yapılmasına olanak tanıyan bir paralel hesaplama biçimi yapar. Bu, CPU'nun yinelenen işlevsel birimler üzerinde aynı anda birden fazla talimat çalıştırarak (talimat gönderme olarak adlandırılır) bir saat döngüsü sırasında birden fazla talimat yürüttüğü anlamına gelir. Her bir işlevsel birim, aritmetik mantık birimi (ALU), kayan nokta birimi (FPU), bit kaydırıcı veya çarpan gibi CPU çekirdeği içindeki bir yürütme kaynağıdır.

Çoğu süperskalar CPU aynı zamanda pipelined'dır, ancak pipelined olmayan bir süperskalar CPU'ya veya pipelined olmayan bir süperskalar CPU'ya sahip olmak mümkündür.

Superscalar tekniği, CPU çekirdeğinin çeşitli özellikleri tarafından desteklenmektedir:

  1. Talimatlar, sıralı bir talimat listesinden gelir.
  2. CPU donanımı hangi talimatların hangi veri bağımlılıklarına sahip olduğunu çözebilir.
  3. Saat döngüsü başına birden fazla talimat okuyabilir

Bir skaler işlemci tarafından çalıştırılan her komut bir seferde bir veya iki veri öğesini değiştirir, ancak bir vektör işlemci tarafından yürütülen her komut aynı anda birçok veri öğesini işler. Bir süperskalar işlemci bu ikisinin bir karışımıdır:

  1. Her komut bir veri öğesini işler.
  2. Her bir CPU çekirdeği içinde birden fazla yinelenen işlevsel birim vardır, böylece birden fazla talimat aynı anda bağımsız veri öğelerini işler.

Superskalar bir CPU'da bir komut gönderici, talimatları bellekten okur ve hangilerinin paralel olarak çalıştırılabileceğine karar vererek bunları CPU içinde bulunan çok sayıda yinelenen işlevsel birime gönderir.

Superscalar CPU tasarımı, komut göndericinin doğruluğunu artırmak ve çoklu işlevsel birimleri her zaman meşgul etmesine izin vermekle ilgilidir. 2008 itibariyle, tüm genel amaçlı CPU'lar süperskalar olup, tipik bir süperskalar CPU 4 adede kadar ALU, 2 FPU ve iki SIMD birimi içerebilir. Eğer dağıtıcı tüm birimleri meşgul edemezse, CPU'nun performansı daha düşük olacaktır.

Dört süperskalar Alpha işlemcili bir CRAY T3e paralel bilgisayarın işlemci kartıZoom
Dört süperskalar Alpha işlemcili bir CRAY T3e paralel bilgisayarın işlemci kartı

Basit süperskalar boru hattı. Bir seferde iki talimat getirip göndererek, döngü başına en fazla iki talimat tamamlanabilir.Zoom
Basit süperskalar boru hattı. Bir seferde iki talimat getirip göndererek, döngü başına en fazla iki talimat tamamlanabilir.

Sınırlamalar

Superscalar CPU tasarımında performans artışı iki şeyle sınırlıdır:

  1. Talimat listesindeki yerleşik paralellik seviyesi
  2. Gönderici ve veri bağımlılığı kontrolünün karmaşıklığı ve zaman maliyeti.

Normal bir süperskalar CPU içinde sonsuz hızlı bağımlılık kontrolü yapılsa bile, komut listesinin kendisinin birçok bağımlılığı varsa, bu da olası performans artışını sınırlayacaktır, bu nedenle koddaki yerleşik paralellik miktarı başka bir sınırlamadır.

Sevkiyatçı ne kadar hızlı olursa olsun, aynı anda kaç talimatın gönderilebileceği konusunda pratik bir sınır vardır. Donanımdaki ilerlemeler CPU çekirdeği başına daha fazla işlevsel birime (örneğin ALU'lar) izin verirken, komut bağımlılıklarını kontrol etme sorunu, elde edilebilir süper skaler gönderme sınırının biraz küçük olduğu bir sınıra kadar artar. -- Muhtemelen eşzamanlı olarak gönderilen talimat sayısı beş ila altı arasındadır.

Alternatifler

  • Simultaneous multithreading: genellikle SMT olarak kısaltılır, superscalar CPU'ların genel hızını artırmak için kullanılan bir tekniktir. SMT, modern bir superscalar işlemci içinde bulunan kaynakları daha iyi kullanmak için birden fazla bağımsız yürütme parçacığına izin verir.
  • Çok çekirdekli işlemciler: süper skaler işlemciler çok çekirdekli işlemcilerden farklıdır çünkü çoklu yedek fonksiyonel birimler işlemcilerin tamamı değildir. Tek bir süperskalar işlemci ALU, tamsayı çarpanı, tamsayı kaydırıcı, kayan nokta birimi (FPU) gibi gelişmiş işlevsel birimlerden oluşur. Birçok talimatın paralel olarak yürütülmesini sağlamak için her bir işlevsel birimin birden fazla sürümü olabilir. Bu, çekirdek başına bir iş parçacığı olmak üzere birden fazla iş parçacığından gelen talimatları eşzamanlı olarak işleyen Çok çekirdekli işlemcilerden farklıdır.
  • Pipelined işlemciler: superscalar işlemciler de birden fazla talimatın aynı anda yürütmenin çeşitli aşamalarında olabildiği pipelined CPU'dan farklıdır.

Çeşitli alternatif teknikler birbirini dışlamaz - tek bir işlemcide birleştirilebilirler (ve sıklıkla birleştirilirler), bu nedenle her çekirdeğin çoklu paralel süper skaler boru hatlarına sahip bağımsız bir işlemci olduğu çok çekirdekli bir CPU tasarlamak mümkündür. Bazı çok çekirdekli işlemciler vektör özelliği de içerir.

İlgili sayfalar

  • Paralel hesaplama
  • Komut düzeyinde paralellik
  • Eşzamanlı çoklu iş parçacığı (SMT)
  • Çok çekirdekli işlemciler

Sorular ve Yanıtlar

S: Superscalar teknolojisi nedir?


C: Superscalar teknolojisi, aynı anda birden fazla yürütme birimi kullanarak her saat döngüsünde birden fazla komutun işlenmesini sağlayan temel bir paralel hesaplama biçimidir.

S: Superscalar teknolojisi nasıl çalışır?


C: Superscalar teknolojisi, talimatların işlemciye sırayla gelmesini, çalışırken veri bağımlılıklarının aranmasını ve her saat döngüsünde birden fazla talimatın yüklenmesini içerir.

S: Skaler ve vektör işlemciler arasındaki fark nedir?


C: Skaler bir işlemcide talimatlar genellikle aynı anda bir veya iki veri öğesi ile çalışırken, vektör işlemcide talimatlar genellikle aynı anda birçok veri öğesi ile çalışır. Bir süperskalar işlemci, her komut bir veri öğesini işlediğinden her ikisinin bir karışımıdır, ancak aynı anda birden fazla komut çalışır, böylece işlemci tarafından aynı anda birçok veri öğesi işlenir.

S: Superscalar bir işlemcide doğru bir komut göndericisinin rolü nedir?


C: Doğru bir komut dağıtıcısı, yürütme birimlerinin her zaman ihtiyaç duyulacak işlerle meşgul olmasını sağladığından, süper skaler bir işlemci için çok önemlidir. Eğer komut dağıtıcısı doğru değilse, o zaman bazı işlerin atılması gerekebilir ve bu da işlemciyi bir ölçekleyici işlemciden daha hızlı yapmaz.

S: Hangi yıl tüm normal CPU'lar superscalar hale geldi?


C: Tüm normal CPU'lar 2008 yılında superscaler oldu.

S: Normal bir CPU'da kaç tane ALU, FPU ve SIMD birimi olabilir?


C: Normal bir CPU'da en fazla 4 ALU, 2 FPU ve 2 SIMD birimi olabilir.

AlegsaOnline.com - 2020 / 2023 - License CC3