ScholarGate
Asistan

Komut Seviyesi Paralellik

Komut seviyesi paralellik (ILP), tek bir programdan birden fazla komutun eş zamanlı olarak yürütülme potansiyelidir; bu potansiyel, döngü başına birden fazla komut yayınlayan ve tamamlayan süperskalar ve VLIW işlemciler tarafından değerlendirilmektedir.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

Komut seviyesi paralellik, tek bir programın komutlarının paralel olarak yürütülebilme derecesidir; işlemciler bunu, veri ve kontrol bağımlılıklarına tabi olarak, saat döngüsü başına birden fazla komutu yayınlayarak, yürüterek ve tamamlayarak değerlendirmektedir.

Kapsam

Bu konu, tek bir komut akışı içinde mevcut olan paralelliği ve donanım ile derleyicilerin bunu nasıl çıkardığını kapsamaktadır: döngü başına birden fazla komutun süperskalar olarak yayınlanması, çok uzun komut kelimesi (VLIW) tasarımları, bağımlılık analizi, yazmaç yeniden adlandırma ve spekülasyon. Ayrıca, mevcut ILP üzerindeki sınırlamaları da ele almaktadır. Çekirdekler ve şeritler arası iş parçacığı ve veri seviyesi paralelliği (paralel ve çok çekirdekli mimari) ile temel tek-yayın boru hattı (boru hattı ve tehlikeler) bu konunun dışındadır.

Temel sorular

  • Tipik bir programın komutları arasında doğası gereği ne kadar paralellik mevcuttur?
  • Süperskalar işlemciler hangi komutların birlikte yayınlanabileceğine nasıl karar verir?
  • VLIW tasarımları, paralellik bulma yükünü derleyiciye nasıl kaydırır?
  • Hangi bağımlılıklar ve tehlikeler, ne kadar ILP'nin gerçekleştirilebileceğini sınırlamaktadır?

Anahtar kavramlar

  • süperskalar yayınlama
  • çok uzun komut kelimesi (VLIW)
  • veri ve isim bağımlılıkları
  • yazmaç yeniden adlandırma
  • çoklu işlevsel birimler
  • spekülasyon
  • ILP sınırları
  • döngü başına komut sayısı (IPC)

Temel kuramlar

Dinamik komut zamanlama
Donanım, bağımlılıkları izleyerek ve hazır komutları birden fazla işlevsel birime zamanlayarak çalışma zamanında ILP'yi keşfedebilir ve değerlendirebilir; Tomasulo algoritması, rezervasyon istasyonları ve yazmaç yeniden adlandırma ile, sırasız, paralel yayınlamayı sağlayan kanonik mekanizmadır.

Mekanizmalar

Süperskalar işlemciler, döngü başına birkaç komutu getirir ve çözer, bağımlılıklarını kontrol eder, yanlış bağımlılıkları gidermek için yazmaçları yeniden adlandırır ve bağımsız komutları birden fazla işlevsel birime yayınlar. VLIW tasarımları ise, bağımsız işlemleri geniş komut kelimelerine demetlemek için derleyiciye güvenmektedir. Gerçek veri bağımlılıkları ve kontrol akışı, gerçekleştirilebilir paralellik üzerinde bir üst sınır belirlemektedir; spekülasyon ve daha büyük komut pencereleri bunu genişletmeye çalışmaktadır.

Klinik önem

ILP teknikleri, onlarca yıl boyunca tek iş parçacıklı performans artışını sağlamış ve yüksek performanslı CPU çekirdekleri için merkezi önemini korumaktadır. Mevcut paralellik ve karmaşıklık sınırlarına ulaşıldıkça azalan getirileri, sektörün daha fazla ölçeklenebilirlik için çok çekirdekli ve açık paralelliğe yönelmesinin temel nedenlerinden biri olmuştur.

Tarihçe

Çoklu işlevsel birimler ve dinamik zamanlama, 1960'larda CDC 6600 ve IBM System/360 Model 91'de ortaya çıkmıştır. Süperskalar tasarımlar 1990'larda ana akım haline gelmiş ve Intel'in Itanium'u gibi VLIW mimarileri derleyici odaklı paralelliği hedeflemiştir. 1990'ların başlarında ILP'nin sınırlarına ilişkin yapılan çalışmalar, tek bir iş parçacığı içindeki paralelliğin neden sınırlı olduğunu açıklığa kavuşturmuştur.

Tartışmalar

Donanım odaklı ve derleyici odaklı ILP
Sırasız süperskalar donanım, karmaşıklık ve güç maliyetiyle paralelliği dinamik olarak bulmaktadır; oysa VLIW, paralelliği statik olarak zamanlamak için derleyiciye güvenmektedir. Deneyimler, dinamik yaklaşımların iş yükleri arasında daha sağlam olduğunu göstermiştir, statik yaklaşımlar ise öngörülebilir, düşük güçlü tasarımlar için cazip kalmaktadır.

Öne çıkan isimler

  • Robert Tomasulo
  • Yale Patt
  • John L. Hennessy
  • Joseph A. Fisher
  • James E. Smith

İlgili konular

Temel eserler

  • hennessy2019
  • tomasulo1967

Sıkça sorulan sorular

Süperskalar ve VLIW arasındaki fark nedir?
Her ikisi de döngü başına birden fazla işlem yürütmektedir. Bir süperskalar işlemci, çalışma zamanında, donanım içinde hangi komutların birlikte yayınlanabileceğine karar vermektedir; bir VLIW işlemci ise, bağımsız işlemleri önceden geniş komutlara gruplamak için derleyiciye güvenmektedir, bu durum donanımı basitleştirirken derleyiciden daha fazlasını talep etmektedir.
Komut seviyesi paralelliğin bir sınırı neden vardır?
Gerçek programlar, kaç komutun paralel çalışabileceğini kısıtlayan gerçek veri bağımlılıklarına ve sık dallanmalara sahiptir. Belirli bir pencerenin ötesinde, elde edilebilir paralellik doygunluğa ulaşmaktadır, bu nedenle daha fazla ILP çıkarmak, eklenen donanım karmaşıklığı ve gücüne kıyasla azalan getiriler sağlamaktadır.

Bu kavram için yöntemler

İlgili kavramlar