Giriş: CISC Mimarilerinde Paralellik İçin Büyüye İhtiyacı

Modern hesaplama, gerçek zamanlı yanıtlayıcı ve çeşitli iş yükleri arasında yüksek aktarım gerektirir - oyun ve yapay zeka için veri analizi ve bulut hizmetlerinden yararlanır.Birçok sistem kalbinde CISC (Complex Öğretim Setleri) işlemcisi, zengin öğretim setlerinin tek bir şekilde performans gösterebilmelerini vurgular. CISC mimarisine ve programlama ve dengelemek için kod boyutunu basitleştirmek için paralellik sağlar.

CISC Mimarisini Anlamak: Paralel Uygulama Vakfı

CISC işlemcileri, bireysel talimatların yüklenebileceği, hesaplayabildiği ve tek bir işlemdeki verileri depolamak için geniş ve çeşitli bir talimatla karakterize edilir. Intel 8086 ve Motorola 68000 gibi tarihsel örnekler, bir model: değişken uzunlukta talimatlar, çoklu adresleme modları ve kodlanmış bir mikrokod kontrol ünitesi ile karmaşık işlemleri program başına daha basit bir iç adımlara indirmektedir. Bu tasarım seçimi, hafıza genişliğine sahip olmak - pahalı hafıza sistemlerinin ilk günlerinde kritik bir avantaj.

Ancak, programcılara CISC'yi cazip kılan aynı karmaşıklık, Intel ve AMD'den gelen x86 aile için engeller yaratır. Değişken uzunlukta talimatlar karmaşık talimatların üstesinden gelmek için daha zor ve mikro kodlanmış kontrol mantığı, karmaşık talimatların geçildiği bir yaklaşımdır.

CISC Süreçors'da Paralellik Türleri

CISC işlemcilerinde paralellik tek bir teknik değil, birden fazla koncurrency seviyesini kapsayan bir katmanlı stratejidir.Her tür farklı şişeleri adresler ve farklı donanım ve yazılım desteği gerektirir.

Öğretim-Level Paralelliği (ILP)

ILP tek bir konu içinde bağımsız talimatları kullanır, aynı anda birden fazla talimat uygulamanıza izin verir. CISC işlemcilerinde, ILP boru işleme, süperscalar yürütme ve daha basit bir RISC benzeri işlemi temsil eder, bağımlılıklar sağlar - daha agresif ILP'ye açık olmayan şekillerde hafıza yazabilir ve yazabilir.

Görev-Level Paralellik (TLP)

TLP, birden fazla iplik veya prosesin eş zamanlı infazını sağlar. TLP genellikle birden çok çekirdekli işlemcilerle ilişkilendirilirken, CISC mimarisi de aynı anda çoklu kullanım teknikleri kullanarak, işletim sistemini fiziksel olarak iki mantıksal çekirdeği görmelerine olanak sağlar.

Data Paralelism

Veri paralelliği, birden fazla veri elementinde aynı işlemi gerçekleştirir (BDTC işlemcileri bunu tek bir talimatda tek bir sayı ile gerçekleştirebilir veya veri paralelliği, x ve Neon'da (PSC'de) öğrenme iş yükleri için kritiktir.

Memory-Level Paralelism (MLP)

Daha az yaygın olarak tartışılan ama aynı derecede önemli, MLP, aynı anda birden fazla olağanüstü hafıza isteğiyle başa çıkma yeteneğini ifade eder. CISC işlemcileri, önbellekli önbellekli bellek erişimlerine karşı daha fazla çalışır. Bu, hafızadaki gecikmeli akışların çoğu zaman en yüksek çözünürlükte, modern iş yüklerinde bile ham hesaplamadan daha fazla.

CISC Süreçtörlerde Paralellik: Core Techniques

Mimari konseptten silikon çalışmak için paralellik, donanım kaynakları konusunda dikkatli orkestratasyon gerektirir. Aşağıdaki teknikler modern CISC işlemcilerinde paralel infazın arka kemiği oluşturur.

Pipelining

Pipelining, eğitim yürütmesini belirli aşamalara ayırıyor -fetch, decode, infaz, hafıza erişimi, yaz-geri. Her aşama aynı anda farklı bir talimatla, etkin bir şekilde çakışlama işlemleri yapabilir. Klasik beş aşamalı bir boru hattında, beş talimatlarda uçuşta olabilir. ancak, CISC karmaşıklığı tehditleri verir: yapısal tehlikeler (resource anlaşmazlıklar), veriler (höfkeler ve atlar arasındaki bağımlılıklar)

Kontrol tehlikeleri azaltmak için, CISC işlemcileri, yanlış bir şekilde ortaya çıktığı zaman, birkaç döngü cezasına çarptırılan tahmin mekanizmaları kullanır. Modern tahminörler iki seviyeli a Adaptif tahminörler ve sinir ağı tabanlı modeller kullanarak% 95'in üzerinde doğruluk oranları elde eder.

Superscalar Execution

Superscalar işlemciler, birden fazla uygulama birimine saatlerce birden fazla talimat verir. Bu, karmaşık bir ön uç gerektirir, kodlanabilir ve aynı anda birkaç talimatları tekrarlar. CISC mimarisinde, değişken uzunlukta eğitim formatı karmaşıktır: tek bir getiriş döngüsü, her döngüye kadar dört veya beş talimat içerebilir.

Decoded μops daha sonra, işlemcinin dış sipariş infazı için talimatların "parçası" oluşturmasını sağlayan bir programcıya geçti.

Out-of-Order Execution (OoOE)

OoOE, operands'in mevcut olduğu gibi talimatları yürütmeye izin verir, program siparişinden ziyade. Bu, uygulama birimlerinin kullanımını en üst düzeye çıkarır ve önbellek veya veri bağımlılarından latencies gizler.

  • [FONT:0]Yönetici yeniden ifade:[Dönetici:0)[Döneticileri:0)Kapitalleri yeniden yazarak, her yeni sonuç, bir fiziksel kayıt için yazılmış, aynı mantıksal kayıtları çatışmadan hedeflemek için birden çok ışık talimatlarına izin vermektedir.
  • [FONT:0]Reservation istasyonları:[Döneticileri bekleyen talimatları tutan buffers. Tüm operands hazır olduğunda, talimat bir uygulama birimine gönderilir.
  • [FONT:0)Reorder buffer (ROB): ), orijinal program siparişini korur ve sonuçları sıraya koyar, kesin istisnalar ve doğru mimari devlet sağlar.

OoOE özellikle CISC işlemcileri için değerlidir, çünkü karmaşık talimatlar değişken sayıda μops'a karşı çıkabilir, her biri kendi kapasiteleri ile.Programcı, farklı talimatlardan μops'ı tamamen sipariş edilen bir tasarımdan daha iyi bir şekilde alabilir.

Branş Prediction and Speculative Execution

Şube tahmini, işlemcinin çok seviyeli tahminlere izin vererek kontrol tehlikelerini azaltır ve şubelerin önünde önceden belirlenmiş yol boyunca talimatları yerine getirir.Sürücük bir infazla birlikte, talimatlar yanlış bir şekilde yürütülmesi gerektiğini onaylayabilir.Modern CISC işlemcileri çok seviyeli bir tahmine göre, ve boru hattı kısa sürede silinir.

Spektrüksiyon, güçlüken, güvenlik sonuçları vardır - özellikle de Meltdown ve Spectre güvenlikleri 2018'de keşfedildi. Bu saldırılar, ayrıcalıklı bilgilere yönelik spekülatif infazın yan etkilerini kullanıyor. yanıt olarak, işlemci satıcılar mikrokole güncelleştirmeleri ve donanım müydüler, ancak bazıları performans maliyetleriyle geliyor.

Gelişmiş Paralellik için Gelişmiş Teknikler

Temel tekniklerin ötesinde, modern CISC işlemcileri, ek paralellik çıkarmak için birkaç gelişmiş mekanizmayı dağıtıyor.

Simultane Multithreading (SMT)

SMT, tek bir temel üzerinde yürütme kaynaklarını paylaşmalarına izin verir. Her bir konu kendi mimari durumunu korur ( kayıt, program sayacı), ancak önbellekler, uygulama birimleri ve hafıza genişliği için rekabet ederler. CISC tasarımları, SMT uzun süreli operasyonların ortaya çıkardığı boru hatları doldurmaya yardımcı olur -örneğin, bir başka iplik bir önbellekleme ünitesini kullanabilir.

Vector Processing with SIMD Extensions

SIMD uzantıları 64-bit MMX'ten 128-bit SSE, 256-bit AVX ve 512-bit AVX-512 modern x86 işlemcilerde çalışır.Bu talimatlar, veri para birimi için önemli hızlar sağlar. AVX-512, örneğin, 8 çift-precision veya 16 tek noktalı işlem temel başına döngü başına geçişler. Uygulama zorlukları kayıt tutma süresi, güç tüketimi ve termal yönetim -AVX-512 birimleri önemli ölçüde önemli ölçüde zor yüklenebilir.

Spektratif bellek Disambiguation

Bellek bağımlılıkları çözmek için en zor arasındadır, çünkü adresler siparişi vermeden önce bilinmemektedir.Bir mağaza talimatı bir bellek konumuna yazılır ve sonraki yük aynı adresden okunmalıdır, yük tamamen mağazayı beklemek zorundadır. ancak, adresler farklıysa, yük siparişin yerine getirilmesi gerekir. Speculative memory disambiguation tahminleri, mağazalara devam etmesine izin verin.

Donanım Prefetching

Memory latency paralellik için büyük bir engeldir. Donanım prefetchers hafıza erişim modellerini gözlemler - tutarlı strides, noktalı kovalama, düzensiz desenler - ve verileri açıkça talep edilenden önce önbelleklere geri getirmek. Advanced prefetchers in CISC işlemciler, Intel Data Prefetching Unit, 32 bağımsız akışlara kadar takip edebilir ve önfetvapta mesafe dinamik olarak ayarlayın.

Paralel CISC Design'da Meydanlar ve Ticaretler

CISC işlemcilerinde paralellik uygulamak önemli engeller olmadan değildir. Her teknik karmaşıklık, güç ve alan maliyetleri performans kazanımlara karşı dikkatli bir şekilde dengelenmelidir.

Öğretim Dekompozisyon ve Decode Kompleksi

CISC talimatlarının değişken uzunluğu, çok yönlü doğası, önemli bir alan ve güçle geniş bir kodlama aşamasına yol açıyor.Bu, toplam temel gücün% 10-15'ini tüketebilir.

Güç ve Termal Kıtlar

Paralel yürütme, daha yüksek geçiş aktivitesi ve sızıntı gücü nedeniyle dinamik güç tüketimini daha büyük kayıt dosyaları ve önbelleklerden arttırır. Vector, AVX-512 gibi birimler, işlemciyi ısı sınırları içinde kalmaları için zaman frekansının azaltılması, faydalarını azaltın. Tasarımcılar güç gating, saat gating ve dinamik gerilim /fretler gibi teknikleri kullanır.

Diminishing ILP'nin Geri Dönüşü

Pencere boyutları arttıkça ve daha fazla talimat paralellik için incelenir, genel amaçlı koddaki artışlar, 3-5'te şube yanlış tahminler ve hafıza gecikmeleri, daha fazla maliyetle ulaşılabilir ILP. Çalışmaları göstermiştir ki, mükemmel bir şube tahmini ve sınırsız kaynaklarla bile, ortalama ILP döngüsündeki talimatlara sahiptir. Pratik uygulamalar genellikle IPC'de oturup daha fazla yatırım yapmak, daha geniş bir konu genişlikte daha pahalıya mal olur.

Güvenlik Vulner

Speculative execution, performans için gerekli olsa da, yeni bir saldırı yüzeyi açtı. Meltdown, çekirdek hafızasını sık sık sistem çağrıları veya bağlam anahtarları ile kullanmak için gerekli işlemleri geri yüklemelerine izin verdi. Spectre, çekirdek sayfası izolasyonu (KPTI), mikrocode yamaları ve donanım yeniden tasarımlarına izin verdi.

Yazılım Ekosistemi Uyumluluk

CISC işlemcilerinde paralellik, yazılım için görünmez kalmalıdır - biner geri dönüş olmadan doğru şekilde çalıştırılmalıdır. Bu kısıtlı mimari değişiklikleri: talimat setine veya hafıza modeline herhangi bir değişiklik geri uyumluluk sağlamalıdır. x86 mimarisi, özellikle, daha agresif bir şekilde paralellik, eski kodu bozmadan nasıl uygulanabileceğini sınırlayan on yıllar süren miras tasarım kararları taşır.

Gerçek Dünya Örnekleri: Modern CISC Süreçtörlerde Paralellik

Yukarıda açıklanan teknikler teorik değildir - Intel ve AMD'den ana işlemcilerde aktif olarak dağıtılırlar.

Intel Core Architecture (P-Core ve E-Core)

Intel'in son hibrit mimarisi (Alder Lake, Raptor Lake, Meteor Lake) performans çekirdeklerini birleştirir (P-cores) verimlilik çekirdeği ile (E-cores) Enerji verimliliği verimliliğine karşı (Genellikle süperler, geniş bir pencere üzerinde siparişler, SMT ve AVX-512 (bazı ürünlerde engelli olsa da) E-cores sipariş veya ışıkla tükenir. Genel sistem, güç verimliliğine yönelik bir donanım-kış mekanizması kullanır.

YBMD Zen Architecture

AMD'nin Zen mikroarşizm (Zen 2, 3, 4) büyük bir reorder tampon ( 256 girişlere kadar), agresif kayıt yeniden alıntı ve çok sayıda bellekten 4 talimatların üstesinden gelmek için karmaşık bir şube öngörür. Sonuç, döngü başına 6 μops'a kadar konur ve döngüye kadar emekli olur.

Sonuç: CISC'de Paralellik Geleceği

CISC işlemcilerinde paralellik uygulamak, mimari adaptasyon hikayesidir - yazılım uyumluluğunu sürdürmek için doğal olarak karmaşık talimatlar ve RISC-inspired teknikleri kullanmak için modern performans kazanımlar elde etmek için daha zor hale gelir.Demek için endüstri daha da derin bir paralellik yapmaya devam eder: daha geniş konular, daha büyük temeller, heterojen temelleri, gelişmiş vektör yeteneklerini pekiştirir ve tek kullanımlık performans kazançları elde etmek için daha da zorlaşır.

Ancak, yol ileriye dönük olarak güç, termal sınırlar, güvenlik hususları ve geri dönüşleri azaltan kararların kanununu büyük ölçüde alan bazlı hızlandırıcıları, çiplerle gelişmiş ambalajlama sistemleri ile aynı kalır: yanıt veren, yüksek performanslı multitasking ile CISC ekosistemini tanımlayan geri yükleme.