Eşzamanlı çoklu kullanım - Simultaneous multithreading

Eş zamanlı çoklu ( SMT ) genel verimliliğini artırmak için kullanılan bir tekniktir superscalar işlemciler ile donanım çoklu . SMT, modern işlemci mimarileri tarafından sağlanan kaynakları daha iyi kullanmak için birden çok bağımsız yürütme iş parçacığına izin verir .

Detaylar

Çoklu iş parçacığı adı belirsizdir, çünkü yalnızca bir CPU çekirdeğinde aynı anda birden çok iş parçacığı yürütülmekle kalmaz, aynı zamanda birden çok görev (farklı sayfa tabloları , farklı görev durumu bölümleri , farklı koruma halkaları , farklı G/Ç izinleri vb. ile). Aynı çekirdek üzerinde çalışsalar da birbirlerinden tamamen ayrıdırlar. Çoklu iş parçacığı, kavram olarak önleyici çoklu göreve benzer, ancak modern süperskalar işlemcilerde iş parçacığı yürütme düzeyinde uygulanır.

Eşzamanlı çoklu iş parçacığı (SMT), çoklu iş parçacığının iki ana uygulamasından biridir, diğer biçim geçici çoklu iş parçacığıdır (süper iş parçacığı olarak da bilinir). Zamansal çoklu kullanımda, belirli bir işlem hattı aşamasında aynı anda yalnızca bir talimat dizisi yürütülebilir. Eşzamanlı çoklu kullanımda, aynı anda herhangi bir boru hattı aşamasında birden fazla iş parçacığından gelen talimatlar yürütülebilir. Bu, temel işlemci mimarisinde büyük değişiklikler yapılmadan yapılır: gereken ana eklemeler, bir döngüdeki birden çok iş parçacığından talimat alma yeteneği ve birden çok iş parçacığından veri tutmak için daha büyük bir kayıt dosyasıdır. Eşzamanlı iş parçacığı sayısı çip tasarımcıları tarafından belirlenir. CPU çekirdeği başına iki eşzamanlı iş parçacığı yaygındır, ancak bazı işlemciler çekirdek başına sekiz adede kadar eşzamanlı iş parçacığını destekler.

Paylaşılan kaynaklar üzerindeki çatışmayı kaçınılmaz olarak artırdığından, etkinliğini ölçmek veya üzerinde anlaşmak zor olabilir. Ancak, tarihsel 130 nm ila 32 nm Intel SMT ( hiper iş parçacığı ) uygulamalarında paralel yerel ve yönetilen iş yükleriyle ölçülen SMT enerji verimliliği, 45 nm ve 32 nm uygulamalarında SMT'nin sıra dışı Atom işlemcilerle bile son derece enerji verimli olduğunu buldu. Modern sistemlerde SMT, çok az ek dinamik güçle eşzamanlılığı etkin bir şekilde kullanır. Yani, performans kazanımları minimum olduğunda bile, güç tüketimi tasarrufu önemli olabilir.

Bazı araştırmacılar, ekstra iş parçacıklarının proaktif olarak bir önbellek gibi paylaşılan bir kaynağı tohumlamak , başka bir tek iş parçacığının performansını artırmak için kullanılabileceğini göstermiş ve bunun SMT'nin yalnızca verimliliği artırmadığını gösterdiğini iddia etmiştir. Diğerleri, bir düzeyde hata algılama ve kurtarma için yedekli hesaplama sağlamak için SMT'yi kullanır.

Bununla birlikte, çoğu durumda, SMT, bellek gecikmesini gizleme , verimliliği artırma ve kullanılan donanım miktarı başına hesaplama verimini artırma ile ilgilidir.

taksonomi

İşlemci tasarımında, daha az kaynak gereksinimi ile çip üzerinde paralelliği artırmanın iki yolu vardır: biri komut düzeyinde paralellikten (ILP) yararlanmaya çalışan süperskalar tekniktir; diğeri, iş parçacığı düzeyinde paralellikten (TLP) yararlanan çok iş parçacıklı yaklaşımdır.

Superscalar, aynı anda birden çok talimatın yürütülmesi anlamına gelirken, iş parçacığı düzeyinde paralellik (TLP), aynı anda bir işlemci yongasındaki birden çok iş parçacığından gelen talimatları yürütür. Bir çip içinde birden fazla iş parçacığını desteklemenin birçok yolu vardır, yani:

  • Interleaved multithreading: Zamansal çoklu kullanım olarak da adlandırılan, farklı iş parçacıklarından gelen çoklu talimatların serpiştirilmiş sorunu . Araya eklenmiş konuların sıklığına bağlı olarak ince taneli çoklu kullanım veya kaba taneli çoklu kullanım olarak ayrılabilir. İnce taneli çoklu iş parçacığı - bir varil işlemcide olduğu gibi - her döngüden sonra farklı iş parçacıkları için talimatlar yayınlarken, kaba taneli çoklu iş parçacığı yalnızca geçerli yürütme iş parçacığı bazı uzun gecikme olaylarına (sayfa hatası vb. ). İri taneli çoklu iş parçacığı, iş parçacıkları arasında daha az bağlam geçişi için daha yaygındır. Örneğin, Intel'in Montecito işlemcisi kaba taneli çoklu kullanım kullanırken Sun'ın UltraSPARC T1 işlemcisi ince taneli çoklu kullanım kullanır. Çekirdek başına yalnızca bir ardışık düzene sahip olan işlemciler için, döngü başına en fazla bir talimat yayınlayabildiğinden, serpiştirilmiş çoklu iş parçacığı mümkün olan tek yoldur.
  • Eşzamanlı çoklu iş parçacığı (SMT): Bir döngüde birden çok iş parçacığından birden çok talimat yayınlayın. Bunu yapmak için işlemci süperskalar olmalıdır.
  • Çip düzeyinde çoklu işlem (CMP veya çok çekirdekli ): iki veya daha fazla işlemciyi, her biri iş parçacıklarını bağımsız olarak yürüten tek bir çipte birleştirir.
  • Çok iş parçacıklı/SMT/CMP'nin herhangi bir kombinasyonu.

Bunları ayırt etmek için anahtar faktör, işlemcinin bir döngüde kaç talimat verebileceğine ve talimatların kaç tane iş parçacığından geldiğine bakmaktır. Örneğin, Sun Microsystems'in UltraSPARC T1'i, her bir çekirdek bir seferde yalnızca bir talimat yayınlayabildiğinden, aynı anda çoklu okuma yerine ince taneli çoklu okuma tekniği ile birleştirilmiş çok çekirdekli bir işlemcidir.

Tarihsel uygulamalar

Çoklu iş parçacıklı CPU'lar 1950'lerden beri varken, eşzamanlı çoklu iş parçacığı ilk kez 1968'de ACS-360 projesinin bir parçası olarak IBM tarafından araştırıldı . SMT ile geliştirilen ilk büyük ticari mikroişlemci Alpha 21464 (EV8) idi. Bu mikroişlemci, DEC tarafından California, San Diego Üniversitesi'nden Dean Tullsen ve Washington Üniversitesi'nden Susan Eggers ve Henry Levy ile koordineli olarak geliştirilmiştir . Mikroişlemci Alfa hattı kısa bir süre önce durdurulan beri mikroişlemci, serbest değildi HP edinilen Compaq sırayla edinmişti DEC . Dean Tullsen'in çalışması, "Northwood" ve "Prescott" gibi Intel Pentium 4 mikroişlemcilerinin hiper iş parçacıklı sürümlerini geliştirmek için de kullanıldı .

Modern ticari uygulamalar

Intel Pentium 4 , 2002 yılında piyasaya 3.06 GHz model itibaren eşzamanlı çoklu, uygulayan ilk modern masaüstü işlemcisi beri, ve onların işlemcileri bir dizi halinde sundu. Intel, işlevselliği Hyper-Threading Teknolojisi olarak adlandırır ve temel iki iş parçacıklı SMT motoru sağlar. Intel, aksi takdirde özdeş, SMT olmayan Pentium 4'e kıyasla %30'a varan hız artışı iddia ediyor. Görülen performans artışı uygulamaya çok bağlıdır; ancak, işlemcinin tüm dikkatini gerektiren iki program çalıştırıldığında, Hyper-threading açıldığında programlardan biri veya her ikisi de biraz yavaşlıyor gibi görünebilir. Bunun nedeni , Pentium 4'ün yeniden oynatma sisteminin değerli yürütme kaynaklarını bağlaması, bant genişliği, önbellekler, TLB'ler gibi kaynaklar için çekişmeyi artırması , yeniden sipariş arabellek girişleri, değişen miktarda yürütme ekleyen iki program arasında işlemci kaynaklarını eşitlemesidir. zaman. Pentium 4 Prescott çekirdeği, yeniden oynatma sistemi için gereken yürütme süresini azaltan bir yeniden oynatma kuyruğu kazandı. Bu, performans isabetinin tamamen üstesinden gelmek için yeterlidir.

En yeni Imagination Technologies MIPS mimarisi tasarımları, "MIPS MT" olarak bilinen bir SMT sistemini içerir . MIPS MT, hem ağır sanal işleme öğeleri hem de daha hafif donanım mikro iş parçacıkları sağlar. Cupertino tabanlı bir başlangıç ​​olan RMI , her biri dört iş parçacığı çalıştıran sekiz çekirdeğe dayalı bir işlemci SOC'si sağlayan ilk MIPS satıcısıdır . İplikler, her döngüde farklı bir iş parçacığının yürütülebildiği ince taneli modda çalıştırılabilir. Konulara ayrıca öncelikler atanabilir. Imagination Technologies MIPS CPU'larda çekirdek başına iki SMT iş parçacığı bulunur.

IBM'in Blue Gene /Q'su 4 yönlü SMT'ye sahiptir.

IBM Power5 Mayıs 2004 tarihinde yayımlanmış, iki iplik SMT motoru dahil olmak üzere, her bir çekirdek ile, bir çift çekirdekli çift çip modülünün (DCM), ya da dört çekirdekli ya da okt-çekirdekli çoklu çip modülünün (MCM) ya kadar gelir. IBM'in uygulaması öncekilerden daha karmaşıktır, çünkü çeşitli iş parçacıklarına farklı bir öncelik atayabilir, daha ayrıntılıdır ve bir SMT işlemcisinin yapacağı iş yüklerini daha iyi yürütmek için SMT motoru dinamik olarak açılıp kapatılabilir. performansı artırmaz. Bu, IBM'in genel kullanıma açık donanım çoklu okumasının ikinci uygulamasıdır. 2010 yılında IBM, her biri dört Eşzamanlı Akıllı İş Parçacığına sahip sekiz çekirdekli POWER7 işlemcisine dayalı sistemler yayınladı. Bu, iş parçacığı modunu, o sırada programlanan işlem iş parçacığı sayısına bağlı olarak bir iş parçacığı, iki iş parçacığı veya dört iş parçacığı arasında değiştirir. Bu, minimum yanıt süresi veya maksimum verim için çekirdeğin kullanımını optimize eder. IBM POWER8 , çekirdek başına 8 akıllı eşzamanlı iş parçacığına (SMT8) sahiptir.

2013 yılında z13 işlemci ile başlayan IBM Z , çekirdek başına iki iş parçacığına (SMT-2) sahiptir.

Her ne kadar birçok kişi Sun Microsystems'in UltraSPARC T1'inin ( 14 Kasım 2005 sürümüne kadar "Niagara" olarak bilinir ) ve şu anda kullanılmayan " Rock " kod adlı işlemcisinin (başlangıçta 2005'te duyurulmuştu, ancak 2010'da birçok gecikmeden sonra iptal edildikten sonra) SPARC'ın uygulamaları olduğunu bildirmesine rağmen neredeyse tamamen SMT ve CMP tekniklerinden yararlanmaya odaklanan Niagara, aslında SMT kullanmıyor. Sun, bu birleşik yaklaşımları "CMT" ve genel konsepti "Verimli Hesaplama" olarak adlandırır. Niagara'nın sekiz çekirdeği vardır, ancak her çekirdeğin yalnızca bir boru hattı vardır, bu nedenle aslında ince taneli çoklu iş parçacığı kullanır. Birden çok iş parçacığından gelen talimatların her döngüde sorun penceresini paylaştığı SMT'nin aksine, işlemci her döngüde bir sonraki etkin iş parçacığından talimat vermek için bir döngüsel deneme ilkesi kullanır. Bu, onu bir varil işlemciye daha çok benzetir . Sun Microsystems'in Rock işlemcisi farklıdır, birden fazla boru hattına sahip daha karmaşık çekirdeklere sahiptir.

Oracle Corporation SPARC T3 çekirdek başına sekiz ince daneli konuları, SPARC T4, T5, SPARC SPARC M5, M6, M7, iki aynı anda çalıştırılabilir olan çekirdek başına sekiz ince taneli dişlere sahip bulunmaktadır.

Fujitsu SPARC64 VI, kaba taneli Dikey Çoklu İş Parçacığı (VMT) SPARC VII'ye sahiptir ve daha yenileri 2 yönlü SMT'ye sahiptir.

Intel Itanium Montecito, kaba taneli çoklu iş parçacığı ve Tukwila ve daha yenisi 2 yönlü SMT (çift alanlı çoklu iş parçacığı) kullandı.

Intel Xeon Phi , normal Hyperthreading'den farklı olarak devre dışı bırakılamayan donanım tabanlı iş parçacıklarına sahip 4 yönlü SMT'ye (zamanla çoğullamalı çoklu iş parçacığı) sahiptir. Intel Atom 2008'de yayımlanan, kullanıcı yeniden sıralama spekülatif yürütme destek veya adlandırma kayıt olmadan (Hiper-Threading'in olarak pazarlanmaktadır) özelliği 2 yönlü SMT ilk Intel ürünüdür. Intel , Core mikro mimarisindeki yokluğundan sonra , Nehalem mikro mimarisiyle Hyper-Threading'i yeniden tanıttı .

AMD Bulldozer mikromimarisi FlexFPU ve Paylaşımlı L2 önbellek çok iş parçacıklıdır ancak modüldeki tamsayı çekirdekleri tek iş parçacıklıdır, bu nedenle yalnızca kısmi bir SMT uygulamasıdır.

AMD Zen mikro mimarisi 2 yönlü SMT'ye sahiptir.

VISC mimarisi , talimatları sanal donanım iş parçacıklarına bölen ve ardından ayrı sanal çekirdeklere gönderilen Global Ön Uç'a tek bir talimat dizisini göndermek için Sanal Yazılım Katmanını (çeviri katmanı) kullanır . Bu sanal çekirdekler daha sonra bunları herhangi bir fiziksel çekirdekteki mevcut kaynaklara gönderebilir. Birden çok sanal çekirdek, iş parçacıklarını aynı anda yürütme bağlantı noktaları aracılığıyla birden çok iş parçacığından kısmi talimatları ve verileri bölebilen tek bir fiziksel çekirdeğin yeniden sıralama arabelleğine itebilir. Her sanal çekirdek, ilgili çıktının konumunu takip eder. Bu çoklu iş parçacığı biçimi, tek bir iş parçacığının CPU'nun tüm kaynaklarını kullanmasına izin vererek tek iş parçacıklı performansı artırabilir. Kaynakların tahsisi, neredeyse tek döngü gecikme düzeyinde dinamiktir (bireysel uygulama ihtiyaçlarına bağlı olarak tahsisteki değişime bağlı olarak 1-4 döngü. Bu nedenle, iki sanal çekirdek kaynaklar için rekabet ediyorsa, belirlemek için uygun algoritmalar vardır. Hangi kaynakların nereye tahsis edileceği.

Dezavantajları

İşlemcinin tasarımına ve mimarisine bağlı olarak, paylaşılan kaynaklardan herhangi biri performans için darboğaz oluşturuyorsa, eşzamanlı çoklu kullanım performansı düşürebilir. Eleştirmenler, çeşitli durumlarda eşzamanlı çoklu okumanın uygulamaları için iyi mi yoksa kötü mü olduğunu test etmek ve performansı düşürürse kapatmak için fazladan mantık eklemek zorunda olduklarını yazılım geliştiricilere yüklemenin önemli bir yük olduğunu savunuyorlar. Mevcut işletim sistemlerinde bu amaç ve farklı önceliğe sahip süreçlerin birbirinden kaynak almasını engellemek için uygun API çağrıları bulunmamaktadır .

Ayrıca belirli eşzamanlı çoklu iş parçacığı uygulamalarıyla ilgili bir güvenlik endişesi de vardır. Intel'in NetBurst tabanlı işlemcilerdeki hiper iş parçacığı, bir uygulamanın önbellek kullanımını izleyerek aynı işlemcide çalışan başka bir uygulamadan bir şifreleme anahtarı çalmasını mümkün kılan bir güvenlik açığına sahiptir . Black Hat 2018'de açıklanan HT uygulamasına yönelik gelişmiş makine öğrenimi açıkları da vardır .

Ayrıca bakınız

Referanslar

Genel

Dış bağlantılar