Ev / internet / ht teknolojisi. Hiper iş parçacığı nedir ve neden? Hyper Threading Destekli CPU'lar

ht teknolojisi. Hiper iş parçacığı nedir ve neden? Hyper Threading Destekli CPU'lar

15.03.2013

Hyper-Threading teknolojisi ortaya çıktı Intel işlemciler, söylemek korkutucu, 10 yıldan fazla bir süre önce. Ve şu anda Core işlemcilerin önemli bir unsurudur. Ancak oyunlarda HT'ye ihtiyaç olduğu sorusu hala tam olarak anlaşılmış değil. Oyuncuların Core i7'ye ihtiyacı olup olmadığını veya Core i5 ile idare etmenin daha iyi olup olmadığını görmek için bir test yapmaya karar verdik. Ayrıca Core i3'ün Pentium'dan nasıl daha iyi olduğunu öğrenin.


Unutulmaz Pentium 4'ten başlayarak Intel tarafından geliştirilen ve özel olarak şirketin işlemcilerinde kullanılan Hyper-Threading Teknolojisi artık kabul görmüş bir şey. Mevcut ve önceki nesillerin önemli sayıda işlemcisi ile donatılmıştır. Yakın gelecekte de kullanılacaktır.

Ve kabul edilmelidir ki Hyper-Threading teknolojisi kullanışlıdır ve performans üzerinde olumlu bir etkiye sahiptir, aksi takdirde Intel bunu işlemcilerini hat içinde konumlandırmak için kullanmazdı. Ve önemsiz bir unsur olarak değil, en önemli olmasa da en önemlilerinden biri olarak. Neden bahsettiğimizi netleştirmek için Intel işlemcilerin segmentasyon ilkesini değerlendirmeyi kolaylaştıran bir tablo hazırladık.


Gördüğünüz gibi Pentium ve Core i3 ile Core i5 ve Core i7 arasında çok az fark var. Aslında, i3 ve i7 modelleri Pentium ve i5'ten yalnızca çekirdek başına üçüncü seviye önbellek boyutunda farklıdır (elbette saat frekansını saymazsak). İlk çift 1.5 megabayt, ikincisi 2 megabayttır. Bu fark, önbellek boyutundaki fark çok küçük olduğu için işlemcilerin performansını kökten etkileyemez. Bu nedenle Core i3 ve Core i7, bu işlemcilerin sırasıyla Pentium ve Core i5'e göre performans avantajı elde etmesini sağlayan ana unsur olan Hyper-Threading teknolojisi için destek aldı.

Sonuç olarak, biraz daha büyük bir önbellek ve Hyper-Threading desteği, işlemciler için önemli ölçüde daha yüksek fiyatlar belirlemenize olanak tanır. Örneğin, Pentium hattının işlemcileri (yaklaşık 10 bin tenge) Core i3'ten (yaklaşık 20 bin tenge) yaklaşık iki kat daha ucuzdur ve fiziksel olarak donanım düzeyinde kesinlikle aynı olmalarına ve buna göre , aynı maliyete sahip. Core i5 (yaklaşık 30 bin tenge) ve Core i7 (yaklaşık 50 bin tenge) arasındaki fiyat farkı da daha genç modellerde iki kattan az olsa da çok büyük.


Böyle bir fiyat artışı ne kadar haklı? Hyper-Threading hangi gerçek kazancı sağlar? Cevap uzun zamandır biliniyor: artış farklı olabilir - hepsi uygulamaya ve optimizasyonuna bağlıdır. En zorlu "ev" uygulamalarından biri olarak HT'nin oyunlarda ne yaptığını kontrol etmeye karar verdik. Ek olarak, bu test, işlemci çekirdeği sayısının oyun performansı üzerindeki etkisine ilişkin önceki materyalimize harika bir katkı olacaktır.

Testlere geçmeden önce, Hyper-Threading Teknolojisinin ne olduğunu hatırlayalım (ya da öğrenelim). Intel'in kendisinin de belirttiği gibi, tanıtım bu teknoloji yıllar önce, bu konuda özellikle karmaşık bir şey yok. Aslında, HT'yi fiziksel düzeyde tanıtmak için gereken tek şey, bir fiziksel çekirdeğe bir kayıt seti ve bir kesme denetleyicisi değil, iki tane eklemektir. Pentium 4 işlemcilerde bunlar ek elemanlar transistör sayısını sadece yüzde beş artırdı. Günümüzün Ivy Bridge çekirdeklerinde (aynı zamanda Sandy Bridge ve gelecekteki Haswell'de), dört çekirdek için bile ek elemanlar kalıbı yüzde 1 bile artırmaz.


Yazılım desteğiyle birleştirilmiş ek kayıtlar ve bir kesme denetleyicisi, işletim sisteminin bir fiziksel çekirdeği değil, iki mantıksal çekirdeği görmesini sağlar. Aynı zamanda, sistem tarafından gönderilen iki akıştan gelen verilerin işlenmesi hala aynı çekirdek üzerinde, ancak bazı özelliklerle devam ediyor. İşlemcinin tamamı hala bir iş parçacığının emrinde kalır, ancak bazı CPU blokları serbest bırakılır ve boşta kalır kalmaz, hemen ikinci iş parçacığının emrine verilir. Bu sayede tüm işlemci birimlerini aynı anda kullanmak ve böylece verimliliği artırmak mümkün oldu. Intel'in kendisinin de belirttiği gibi ideal koşullarda performans artışı yüzde 30'a kadar çıkabiliyor. Doğru, bu rakamlar sadece çok uzun hattı olan Pentium 4 için geçerli, modern işlemciler HT'den daha az yararlanıyor.

Ancak Hyper-Threading için ideal koşullar her zaman böyle değildir. Ve en önemlisi, HT'nin çalışmasının en kötü sonucu, performans artışının olmaması değil, azalmasıdır. Yani, belirli koşullar altında, HT'li bir işlemcinin performansı, HT'siz bir işlemciye göre düşecektir, çünkü iş parçacığı ayırma ve kuyruğa alma ek yükü, bu özel durumda mümkün olan paralel iş parçacıklarının hesaplanmasından elde edilen kazancı önemli ölçüde aşacaktır. durum. Ve bu tür durumlar Intel'in isteyeceğinden çok daha yaygın. Ayrıca, Hyper-Threading'i uzun yıllar kullanmak durumu iyileştirmedi. Bu, özellikle çok karmaşık ve veri hesaplama, uygulamalar açısından alışılmadık olmayan oyunlar için geçerlidir.

Hyper-Threading'in oyun performansı üzerindeki etkisini bulmak için yine uzun süredir acı çeken Core i7-2700K test işlemcimizi kullandık ve çekirdekleri devre dışı bırakarak ve HT'yi etkinleştirerek / devre dışı bırakarak aynı anda dört işlemciyi simüle ettik. Geleneksel olarak Pentium (2 çekirdek, HT kapalı), Core i3 (2 çekirdek, HT açık), Core i5 (4 çekirdek, HT kapalı) ve Core i7 (4 çekirdek, HT açık) olarak adlandırılabilirler. Neden şartlı? Her şeyden önce, çünkü bazı özelliklere göre gerçek ürünlerle örtüşmemektedir. Özellikle, çekirdeklerin devre dışı bırakılması, üçüncü seviye önbelleğin hacminde karşılık gelen bir azalmaya yol açmaz - herkes için hacmi 8 megabayttır. Ayrıca, tüm "koşullu" işlemcilerimiz, henüz tüm Intel işlemcileri tarafından elde edilmeyen aynı 3.5 GHz frekansında çalışır.


Ancak, bu daha da iyisi için, çünkü hepsinin değişmezliği sayesinde önemli parametreler Hyper-Threading'in oyun performansı üzerindeki gerçek etkisini hiç çekinmeden öğrenebileceğiz. Ve "koşullu" Pentium ve Core i3'ümüz arasındaki performans yüzdesi farkı, frekansların eşit olması koşuluyla gerçek işlemciler arasındaki farka yakın olacaktır. Sandy Bridge işlemci kullanmamız da utanç verici olmamalı, çünkü “Çıplak performans - ALU'ların ve FPU'ların verimliliğini keşfetme” makalesinde okuyabileceğiniz verimlilik testlerimiz, Hyper-Threading'in en yeni nesil işlemciler Core değişmeden kalır. Büyük olasılıkla alakalı verilen malzeme Ayrıca yaklaşan Haswell işlemciler için de mevcut olacak.

Görünüşe göre test metodolojisi ile ilgili tüm soruların yanı sıra Hyper-Threading Teknolojisinin işleyişinin özellikleri tartışıldı ve bu nedenle en ilginç şeye - testlere geçmenin zamanı geldi.

İşlemci çekirdek sayısının oyun performansı üzerindeki etkisini incelediğimiz teste geri dönersek, 3DMark 11'in CPU performansı konusunda oldukça sakin olduğunu, tek bir çekirdekte bile mükemmel çalıştığını öğrendik. Hyper-Threading aynı "güçlü" etkiye sahipti. Gördüğünüz gibi, test Pentium ve Core i7 arasındaki farkları, ara modellerden bahsetmiyorum bile, kesinlikle fark etmiyor.

Metro 2033

Ancak Metro 2033, Hyper-Threading'in ortaya çıkışını açıkça fark etti. Ve olumsuz tepki verdi! Evet, bu doğru: Bu oyunda HT'yi etkinleştirmenin performans üzerinde olumsuz bir etkisi var. Elbette küçük bir etki - dört fiziksel çekirdekle saniyede 0,5 kare ve iki çekirdekle 0,7 kare. Ancak bu gerçek, Metro 2033'te Pentium'un Core i3'ten daha hızlı olduğunu ve Core i5'in Core i7'den daha iyi olduğunu söylemek için her türlü nedeni veriyor. İşte Hyper-Threading'in etkinliğini her zaman ve her yerde göstermediği gerçeğinin teyidi.

Crysis 2

Bu oyun çok ilginç sonuçlar gösterdi. Her şeyden önce, Hyper-Threading'in etkisinin çift çekirdekli işlemcilerde açıkça görüldüğünü not ediyoruz - Core i3, Pentium'dan neredeyse yüzde 9 daha iyi performans gösterdi ki bu bu oyun için oldukça fazla. HT ve Intel için zafer mi? Pek değil, çünkü Core i7, gözle görülür şekilde daha ucuz Core i5'e göre herhangi bir gelişme göstermedi. Ancak bunun makul bir açıklaması var - Crysis 2, dörtten fazla veri akışını nasıl kullanacağını bilmiyor. Bu nedenle, HT ile çift çekirdekte iyi bir artış görüyoruz - sonuçta, mantıklı olsa da dört iş parçacığı ikiden daha iyidir. Öte yandan, ek Core i7 iş parçacığı koyacak hiçbir yer yoktu, orada dört fiziksel çekirdek yeterliydi. Dolayısıyla, bu testin sonuçlarına göre, Core i3'te HT'nin olumlu etkisini, buradaki Pentium'dan belirgin şekilde daha iyi olduğunu not edebiliriz. Ancak dört çekirdekli Core i5 arasında yine daha makul bir çözüm gibi görünüyor.

Savaş alanı 3

Burada sonuçlar çok garip. Çekirdek sayısı testinde, savaş alanı mikroskobik ancak doğrusal bir artışın bir örneğiyse, Hyper-Threading'in dahil edilmesi sonuçlara kaos getirdi. Hatta iki çekirdeği ve HT'si ile Core i3'ün Core i5 ve Core i7'den bile daha iyi olduğunu söyleyebiliriz. Garip tabii ki ama aynı zamanda Core i5 ve Core i7 yine aynı seviyedeydi. Bunu ne açıklıyor, net değil. Büyük olasılıkla, bu oyundaki test metodolojisi, standart kıyaslamalardan daha büyük hatalar veren burada bir rol oynadı.

Son testte F1 2011, çekirdek sayısı konusunda çok kritik olan oyunlardan biri olarak kendini gösterdi ve bunda Hyper-Threading teknolojisinin performansı üzerindeki mükemmel etkisi ile bir kez daha şaşırttı. Ve yine Crysis 2'de olduğu gibi, HT'nin dahil edilmesinin çift çekirdekli işlemcilerde çok iyi olduğu kanıtlandı. Koşullu Core i3 ve Pentium arasındaki farka bakın - iki katından fazla! Oyunun iki çekirdeğin çok eksik olduğunu ve aynı zamanda kodunun o kadar iyi paralelleştirildiğini açıkça görebilirsiniz ki, efekt inanılmaz. Öte yandan, dört fiziksel çekirdeği yenemezsiniz - Core i5, Core i3'ten belirgin şekilde daha hızlıdır. Ancak Core i7, yine önceki oyunlarda olduğu gibi, Core i5'in arka planına karşı olağanüstü bir şey göstermedi. Sebep aynı - oyun 4'ten fazla iş parçacığı kullanamaz ve HT'nin yükü Core i7'nin performansını Core i5 seviyesinin altına düşürür.

Eski bir savaşçının Hyper-Threading'e ihtiyacı, bir kirpinin bir T-shirt'e ihtiyacı olmadığı gibi - etkisi hiçbir şekilde F1 2011 veya Crysis 2'deki kadar belirgin değil. işlemci 1 ekstra çerçeve getirdi. Tabii bu Core i3'ün Pentium'dan daha iyi olduğunu söylemek için yeterli değil. En azından, bu gelişme, bu işlemcilerin fiyat farkıyla açıkça eşleşmemektedir. Ve Core i5 ve Core i7 arasındaki fiyat farkı, HT desteği olmayan işlemcinin tekrar daha hızlı olduğu ortaya çıktığından, hatırlamaya bile değmez. Ve gözle görülür şekilde daha hızlı - yüzde 7 oranında. Beğenin ya da beğenmeyin, bu oyun için maksimum dört iş parçacığı olduğunu ve bu nedenle HyperThreading'in bu durum Core i7'ye yardımcı olmaz, ancak müdahale eder.

BIOS Kurulumunun içeriğine dikkatlice baktıysanız, orada CPU seçeneğini fark edebilirsiniz. Hiper İş Parçacığı teknoloji. Belki de Hyper Threading'in ne olduğunu (Super-threading veya hyper-threading, resmi adı Hyper Threading Technology, HTT'dir) ve bu seçeneğe neden ihtiyaç duyulduğunu merak ettiler.

Hyper Threading, karşılaştırmalı olarak yeni teknoloji, Intel tarafından Pentium mimarisi işlemcileri için geliştirildi. Uygulamanın gösterdiği gibi, Hyper Threading teknolojisinin kullanımı birçok durumda CPU performansını yaklaşık %20-30 oranında artırmayı mümkün kılmıştır.

Burada bir bilgisayarın merkezi işlem biriminin genel olarak nasıl çalıştığını hatırlamanız gerekir. Bilgisayarı açar açmaz ve üzerinde bir program çalıştırır çalıştırmaz, CPU, makine kodunda yazılı olan talimatları okumaya başlar. Her talimatı sırayla okur ve bunları birer birer yürütür.

Bununla birlikte, birçok programın aynı anda çalışan birkaç yazılım işlemi vardır. Ek olarak, modern işletim sistemleri, kullanıcının birkaç tane olmasına izin verir. çalışan programlar. Ve sadece izin vermekle kalmaz - aslında, işletim sisteminde tek bir işlemin çalıştığı durum bugün tamamen düşünülemez. Bu nedenle, daha eski teknolojiler kullanılarak geliştirilen işlemciler, aynı anda birkaç işlemin aynı anda işlenmesinin gerekli olduğu durumlarda düşük performans gösteriyordu.

Elbette bu sorunu çözmek için birden fazla işlemciyi aynı anda sisteme dahil edebilirsiniz ya da birden fazla fiziksel bilgi işlem çekirdeği kullanan işlemcileri sisteme dahil edebilirsiniz. Ancak böyle bir iyileştirmenin pahalı, teknik olarak karmaşık olduğu ve pratik açıdan her zaman etkili olmadığı ortaya çıkıyor.

Geliştirme geçmişi

Bu nedenle, birkaç işlemin tek bir fiziksel çekirdek üzerinde işlenmesine izin verecek bir teknoloji oluşturulmasına karar verildi. Aynı zamanda, programlar için mesele, sistemde aynı anda birkaç işlemci çekirdeği varmış gibi görünecek.

Hyper Threading teknolojisi desteği ilk olarak 2002'de işlemcilerde ortaya çıktı. Bunlar Pentium 4 ailesinin işlemcileri ve saat hızları 2 GHz'in üzerinde olan Xeon sunucu işlemcileriydi. Başlangıçta teknolojinin kod adı Jackson'dı, ancak daha sonra adı, genel halk tarafından daha anlaşılır olan Hyper Threading olarak değiştirildi - bu kabaca "süper iş parçacığı" olarak çevrilebilir.

Aynı zamanda, Intel'e göre, Hyper Threading'i destekleyen bir işlemci çipinin yüzeyi, onu desteklemeyen önceki modele kıyasla yalnızca %5 oranında artarken, performansı ortalama %20 oranında artırdı.

Teknolojinin bir bütün olarak kendini kanıtlamış olmasına rağmen, yine de birkaç nedenden dolayı Intel, Pentium 4'ün yerini alan Core 2 ailesinin işlemcilerinde Hyper Threading teknolojisini devre dışı bırakmaya karar verdi. Ancak, Hyper Threading daha sonra yeniden ortaya çıktı. Sandy Bridge, Ivy Bridge ve Haswell'in işlemci mimarilerinde büyük ölçüde yeniden tasarlandı.

teknolojinin özü

Hyper Threading'i anlamak önemlidir, çünkü anahtar işlevler Intel işlemcilerde.

İşlemciler tarafından elde edilen tüm başarılara rağmen, önemli bir dezavantajı var - bir seferde yalnızca bir talimat yürütebilirler. Diyelim ki aynı anda çalışan uygulamalarınız var, örneğin Metin düzeltici, tarayıcı ve Skype. Kullanıcının bakış açısından, bu yazılım ortamına çoklu görev denilebilir, ancak işlemci açısından bu durum böyle olmaktan uzaktır. İşlemci çekirdeği belirli bir süre boyunca yine de bir talimatı yürütecektir. Bu durumda işlemcinin görevi, işlemci zaman kaynaklarının aralarındaki dağıtımını içerir. bireysel başvurular. Talimatların bu sıralı yürütülmesi son derece hızlı olduğundan, bunu fark etmezsiniz. Ve size öyle geliyor ki gecikme yok.

Ama hala bir gecikme var. Gecikme, işlemciye programların her birinden veri sağlanma şeklinden dolayı ortaya çıkar. Her veri akışı belirli bir zamanda gelmeli ve işlemci tarafından ayrı ayrı işlenmelidir. Hyper Threading teknolojisi, her işlemci çekirdeğinin veri işlemeyi planlamasını ve kaynakları iki iş parçacığı için aynı anda tahsis etmesini mümkün kılar.

Modern işlemcilerin çekirdeğinde, her biri veriler üzerinde belirli bir işlem gerçekleştirmek üzere tasarlanmış, aynı anda birkaç yürütme birimi bulunduğuna dikkat edilmelidir. Aynı zamanda, bu yürütme aygıtlarından bazıları, bir iş parçacığından gelen verilerin işlenmesi sırasında boşta olabilir.

Bu durumu anlamak için montaj atölyesinde konveyör üzerinde çalışan ve farklı türde parçaları işleyen işçilerle bir benzetme yapabiliriz. Her işçi, bir görevi gerçekleştirmek için tasarlanmış özel bir araçla donatılmıştır. Ancak, parçalar yanlış sırayla gelirse, gecikmeler olur - çünkü bazı işçiler işe başlama sırasının gelmesini beklemektedir. Hyper Threading, daha önce boşta kalan işçilerin görevlerini diğerlerinden bağımsız olarak yerine getirmeleri için dükkana döşenen ek bir konveyör bandına benzetilebilir. Atölye hala yalnızdır, ancak parçalar daha hızlı ve verimli bir şekilde işlenir, bu nedenle arıza süresi azalır. Böylece, Hyper Threading, bir iş parçacığından talimatları yürütürken boşta kalan işlemcinin yürütme aygıtlarını çalışmaya dahil etmeyi mümkün kıldı.

Hyper Threading'i destekleyen çift çekirdekli işlemciye sahip bir bilgisayarı açar açmaz ve Performans (Performans) sekmesinde Windows Görev Yöneticisi'ni (Görev Yöneticisi) açar açmaz, içinde dört grafik bulacaksınız. Ancak bu, aslında 4 işlemci çekirdeğiniz olduğu anlamına gelmez.

Bunun nedeni, Windows'un her çekirdeğin iki mantıksal işlemciye sahip olduğunu düşünmesidir. "Mantıksal işlemci" terimi kulağa komik geliyor, ancak fiziksel olarak var olmayan bir işlemci anlamına geliyor. Windows, her mantıksal işlemciye veri akışları gönderebilir, ancak işi aslında yalnızca bir çekirdek yapıyor. Bu nedenle, Hyper Threading teknolojisine sahip tek bir çekirdek, ayrı fiziksel çekirdeklerden önemli ölçüde farklıdır.

Hyper Threading teknolojisi, aşağıdaki donanım ve yazılımlardan destek gerektirir:

  • İşlemci
  • anakart yonga seti
  • İşletim sistemi

Teknoloji Faydaları

Şimdi bir sonraki soruyu düşünün - Hyper Threading teknolojisi bilgisayar performansını ne kadar artırır? İnternette gezinme ve yazı yazma gibi günlük işlerde teknolojinin faydaları o kadar açık değildir. Ancak, günümüz işlemcilerinin o kadar güçlü olduğunu ve günlük görevlerin işlemciyi nadiren tam kapasiteyle kullandığını unutmayın. Ayrıca, çok şey nasıl yazıldığına bağlıdır. yazılım. Aynı anda birkaç program çalıştırabilirsiniz, ancak yük grafiğine baktığınızda çekirdek başına yalnızca bir mantıksal işlemcinin kullanıldığını göreceksiniz. Bunun nedeni, yazılımın çekirdekler arasında süreçlerin dağıtımını desteklememesidir.

Ancak, daha karmaşık görevlerde Hyper Threading daha faydalı olabilir. 3B modelleme programları, 3B oyunlar, müzik veya video kodlama/kod çözme programları gibi uygulamalar ve birçok bilimsel uygulama, çoklu kullanımdan en iyi şekilde yararlanmak için yazılmıştır. Bu nedenle, karmaşık oyunlar oynarken, müzik dinlerken veya film izlerken hiper iş parçacıklı bir bilgisayarın performansının avantajlarını yaşayabilirsiniz. Bu, Hyper Threading'in hiç bir avantaj sağlamadığı durumlar olsa da, performansı %30'a kadar artırabilir. Bazen, her iki iş parçacığının işlemcinin tüm yürütme aygıtlarını aynı görevlerle yüklemesi durumunda, performansta bir miktar düşüş bile olabilir.

Hyper Threading parametrelerini ayarlamanıza izin veren ilgili seçeneğin BIOS Kurulumunda varlığına geri dönersek, çoğu durumda bu özelliği etkinleştirmeniz önerilir. Ancak, bilgisayarın hatalarla çalıştığı veya beklediğinizden daha düşük performans gösterdiği ortaya çıkarsa, her zaman kapatabilirsiniz.

Çözüm

Hyper Threading kullanırken maksimum performans artışı %30 olduğu için teknolojinin işlemci çekirdek sayısını ikiye katlamaya eşdeğer olduğu söylenemez. Bununla birlikte, Hyper Threading yararlı bir seçenektir ve bir bilgisayarın sahibi olarak buna müdahale etmeyeceksiniz. Avantajı, örneğin multimedya dosyalarını düzenlediğinizde veya bilgisayarınızı Photoshop veya Maya gibi profesyonel programlar için bir iş istasyonu olarak kullandığınızda özellikle fark edilir.

Hyper-threading teknolojisi bağlamında bellek performansını değerlendirmenin gerekli olduğu bir zaman vardı. Etkisinin her zaman olumlu olmadığı sonucuna vardık. Bir miktar boş zaman olduğunda, kendi tasarım yazılımımızı kullanarak, makine döngüleri ve bitleri doğruluğu ile devam eden süreçleri araştırmaya devam etme arzusu vardı.

Araştırılan Platform

Deneylerin amacı - ASUS dizüstü bilgisayar Intel Core i7-4700HQ işlemcili N750JK. Saat hızı 2,4 GHz'dir ve Intel Turbo Boost modu ile 3.4 GHz'e yükseltilir. 16 gigabayt yüklü rasgele erişim belleğiÇift kanal modunda çalışan DDR3-1600 (PC3-12800). İşletim sistemi - Microsoft Windows 8.1 64 bit.

Şekil.1 İncelenen platformun konfigürasyonu.

İncelenen platformun işlemcisi, Hyper-Threading teknolojisi etkinleştirildiğinde 8 iş parçacığı veya mantıksal işlemci için donanım desteği sağlayan 4 çekirdek içerir. Platform üretici yazılımı, bu bilgiyi MADT (Çoklu APIC Açıklama Tablosu) ACPI tablosu aracılığıyla işletim sistemine iletir. Platform yalnızca bir RAM denetleyicisi içerdiğinden, işlemci çekirdeklerinin bellek denetleyicilerine yakınlığını bildiren bir SRAT (Sistem Kaynağı Yakınlık Tablosu) yoktur. Açıkçası, söz konusu dizüstü bilgisayar bir NUMA platformu değil, ancak işletim sistemi, birleştirme amacıyla, NUMA Nodes = 1 satırıyla gösterildiği gibi, onu tek etki alanına sahip bir NUMA sistemi olarak kabul eder. dört çekirdekten her biri. Aynı çekirdeği paylaşan iki mantıksal işlemci, L1 ve L2 önbelleklerini paylaşır.

İncelenen operasyon

Veri bloğu okuma hızının boyutuna bağımlılığını araştıracağız. Bunu yapmak için en verimli yöntemi seçeceğiz, yani VMOVAPD AVX komutunu kullanarak 256-bit işlenenleri okuyacağız. Grafiklerde, X ekseni blok boyutunu ve Y ekseni okuma hızını gösterir. Birinci seviye önbelleğin boyutuna karşılık gelen X noktasının yakınında, işlenen blok önbellekten çıktıktan sonra performansın düşmesi gerektiğinden bir bükülme noktası görmeyi bekliyoruz. Testimizde, çoklu iş parçacığı durumunda, başlatılan 16 iş parçacığının her biri ayrı bir adres aralığı ile çalışır. Bir uygulama içinde Hyper-Threading teknolojisini kontrol etmek için her bir iş parçacığı, her mantıksal işlemcinin bir bite karşılık geldiği bir maske ayarlayan SetThreadAffinityMask API işlevini kullanır. Bitin tek bir değeri, belirtilen işlemcinin belirtilen iş parçacığı tarafından kullanılmasına izin verir, sıfır değeri bunu yasaklar. İncelenen platformun 8 mantıksal işlemcisi için, 11111111b maskesi tüm işlemcilerin kullanılmasına izin verir (Hyper-Threading etkinleştirilir), 01010101b maskesi her çekirdekte bir mantıksal işlemcinin kullanılmasına izin verir (Hyper-Threading devre dışı bırakılır).

Grafiklerde aşağıdaki kısaltmalar kullanılmıştır:

MBPS (Saniyede Megabayt)saniyede megabayt olarak okuma hızını engelle;

CPI (Talimat Başına Saat)talimat başına döngü sayısı;

TSC (Zaman Damgası Sayacı)işlemci döngü sayacı.

Not: TSC kaydının saat hızı, Turbo Boost modunda çalışırken işlemcinin saat hızıyla eşleşmeyebilir. Sonuçlar yorumlanırken bu dikkate alınmalıdır.

Grafiklerin sağ tarafında, program iş parçacıklarının her birinde veya bu kodun ilk 128 baytında gerçekleştirilen hedef işlemin döngüsünün gövdesini oluşturan talimatların onaltılık bir dökümü görselleştirilir.

1 numaralı deneyim. Bir iş parçacığı



İncir. 2 Tek iş parçacığında okuma

Maksimum hız saniyede 213563 megabayttır. Bükülme noktası, yaklaşık 32 kilobaytlık bir blok boyutunda meydana gelir.

2 numaralı deneyim. 4 işlemcide 16 iş parçacığı, Hyper-Threading devre dışı



Şekil 3 On altı iş parçacığında okuma. Kullanılan mantıksal işlemci sayısı dört

Hiper iş parçacığı devre dışı bırakıldı. Maksimum hız saniyede 797598 megabayttır. Bükülme noktası, yaklaşık 32 kilobaytlık bir blok boyutunda meydana gelir. Beklendiği gibi, tek bir iş parçacığı ile okumaya kıyasla, çalışan çekirdek sayısı açısından hız yaklaşık 4 kat arttı.

3 numaralı deneyim. 8 işlemcide 16 iş parçacığı, Hyper-Threading etkin



Şekil 4 On altı iş parçacığında okuma. Kullanılan mantıksal işlemci sayısı sekizdir.

Hiper iş parçacığı etkinleştirildi. Hyper-Threading'in dahil edilmesinin bir sonucu olarak saniyede 800722 megabaytlık maksimum hız neredeyse artmadı. Büyük eksi, bükülme noktasının yaklaşık 16 kilobaytlık bir blok boyutunda gerçekleşmesidir. Hyper-Threading'i etkinleştirmek maksimum hızı biraz artırdı, ancak hız düşüşü artık blok boyutunun yarısında - yaklaşık 16 kilobaytta gerçekleşiyor, bu nedenle ortalama hız önemli ölçüde düştü. Bu şaşırtıcı değil, her çekirdeğin kendi L1 önbelleği varken, aynı çekirdekteki mantıksal işlemciler bunu paylaşıyor.

bulgular

İncelenen işlem, çok çekirdekli bir işlemci üzerinde oldukça iyi ölçeklenir. Bunun nedenleri, çekirdeklerin her birinin birinci ve ikinci düzeylerde kendi önbellek belleğini içermesi, hedef bloğun boyutunun önbellek boyutuyla karşılaştırılabilir olması ve iş parçacıklarının her birinin kendi adres aralığıyla çalışmasıdır. Akademik amaçlar için, gerçek uygulamaların genellikle ideal optimizasyondan uzak olduğunu fark ederek, sentetik bir testte bu tür koşulları oluşturduk. Ancak Hyper-Threading'in dahil edilmesi, bu koşullar altında bile, tepe hızında hafif bir artışla olumsuz bir etkiye sahipti, boyutu 16 ila 32 arasında olan blokların işlem hızında önemli bir kayıp var. kilobayt.

Merhaba bilgisayar ve donanım severler.

Bilgisayarınızda birçok görevi ışık hızında gerçekleştirebilen yüksek performanslı bir işlemciye sahip olmak ister misiniz? Kim reddeder, değil mi? O zaman hiper iş parçacığı teknolojisiyle tanışmanızı öneririm: nedir ve nasıl çalışır, bu makaleden öğreneceksiniz.


Kavramın açıklaması

Hiper iş parçacığı, İngilizce'den "hiper doğruluk" olarak çevrilir. Teknoloji bir nedenden dolayı bu kadar büyük bir isim aldı. Sonuçta, işletim sistemi, iki mantıksal çekirdek için onunla donatılmış bir fiziksel işlemci alır. Sonuç olarak, daha fazla komut işlenir ve performans düşmez.

Bu nasıl mümkün olabilir? İşlemci gerçeği nedeniyle:

  • Aynı anda birkaç çalışan iş parçacığı hakkında bilgi kaydeder;
  • Her mantıksal işlemci için bir dizi kayıt vardır - hızlı dahili bellek blokları ve bir kesme bloğu. İkincisi, farklı cihazlardan gelen isteklerin sıralı yürütülmesinden sorumludur.

Pratikte nasıl görünüyor? Şimdi fiziksel işlemcinin ilk mantıksal işlemcinin komutlarını işlediğini varsayalım. Ancak ikincisinde bir tür başarısızlık vardı ve örneğin bellekten veri beklemesi gerekiyor. Fiziksel hiç zaman kaybetmeyecek ve hemen ikinci mantıksal işlemciye geçecektir.

Performansı iyileştirme hakkında

Fiziksel bir işlemcinin verimliliği, kural olarak,% 70'ten fazla değildir. Niye ya? Çoğu zaman, belirli bir görevi yerine getirmek için bazı bloklara ihtiyaç duyulmaz. Örneğin, CPU önemsiz hesaplama eylemleri gerçekleştirdiğinde, talimat bloğu ve SIMD uzantısı dahil değildir. Şube tahmin modülünde veya önbelleğe erişirken bir hata meydana gelir.

Bu gibi durumlarda, Hyper-threading diğer görevlerle "boşlukları" doldurur. Bu nedenle, teknolojinin etkinliği, yararlı işlerin boşta kalmaması ve boşta kalan cihazlara verilmesi gerçeğinde yatmaktadır.

Görünüm ve uygulama

Hyper-threading'in 15. yılını şimdiden kutladığını varsayabiliriz. Sonuçta, 2002 yılında piyasaya sürülen ve ilk olarak Xeon ürünlerinde çalışmaya başlayan süper iş parçacığı teknolojisi temelinde geliştirildi, ardından aynı yıl Pentium 4'e entegre edildi. Bu teknolojilerin telif hakkı Intel'e aittir.

HT, yüksek saat hızlarıyla karakterize edilen NetBurst mikro mimarisinde çalışan işlemcilerde uygulanır. Core vPro, M ve Xeon ailelerinin modellerinde teknoloji desteği uygulanmaktadır. Ancak Core 2 ("Duo", "Quad") serisinde entegre değildir. Atom ve Itanium proseslerinde çalışma prensibine benzer bir teknoloji uygulanmaktadır.

Nasıl etkinleştirilir? Yukarıdaki işlemcilerden yalnızca birine değil, aynı zamanda teknolojiyi destekleyen bir işletim sistemine ve HT'yi açıp kapatma seçeneğine sahip bir BIOS'a sahip olmanız gerekir. Değilse, BIOS'u güncelleyin.

Hyperthreading'in Artıları ve Eksileri

Yukarıdaki bilgilerden teknolojinin bazı avantajları hakkında zaten bir sonuç çıkarabilirsiniz. Onlara birkaç kelime daha ekleyeceğim:

  • Birkaç programın paralel olarak kararlı çalışması;
  • İnternette gezinirken veya uygulamaları kullanırken azaltılmış yanıt süresi.

Anladığınız gibi, merhemde sinek yoktu. Aşağıdaki nedenlerden dolayı performans kazancı olmayabilir:

  • Yeterli önbellek yok. Örneğin, 4 çekirdekli i7 işlemcilerde önbellek 8 MB'dir, ancak aynı sayıda mantıksal çekirdek vardır. Çekirdek başına yalnızca 1 MB alıyoruz, bu çoğu programın hesaplama görevlerini gerçekleştirmesi için yeterli değil. Bu nedenle performans sadece sabit durmakla kalmaz, hatta düşer.

  • Veri bağımlılığı. İlk iş parçacığının hemen ikinciden bilgi gerektirdiğini, ancak henüz hazır olmadığını veya başka bir iş parçacığı için kuyruğa girdiğini varsayalım. Ayrıca, bir görevi hızlı bir şekilde tamamlamak için döngüsel verilerin belirli bloklara ihtiyacı olduğu da olur, ancak zaten başka işlerle meşguller.
  • Çekirdek aşırı yüklenmesi. Çekirdek zaten aşırı yüklenmiş olabilir, ancak buna rağmen, tahmin modülü hala ona veri gönderir ve bunun sonucunda bilgisayar yavaşlamaya başlar.

Hiper iş parçacığı nerede gereklidir?

Kaynak yoğun programları kullanırken teknoloji faydalı olacaktır: ses, video ve fotoğraf editörleri, oyunlar, arşivleyiciler. Bunlara Photoshop, Maya, 3D's Max, Corel Draw, WinRar vb. dahildir.

Yazılımın Hyper-threading için optimize edilmiş olması önemlidir. Aksi takdirde gecikmeler yaşanabilir. Gerçek şu ki, programlar mantıksal çekirdekleri fiziksel olarak kabul eder, böylece aynı bloğa farklı görevler gönderebilirler.

Sizi blogumda görmek için sabırsızlanıyorum.

BIOS'u en az bir kez yapılandırmış olan kullanıcılar, muhtemelen birçokları için anlaşılmaz olan bir Intel Hyper Threading parametresinin olduğunu fark etmişlerdir. Birçoğu bu teknolojinin ne olduğunu ve ne amaçla kullanıldığını bilmiyor. Hyper Threading'in ne olduğunu ve bu desteğin kullanımını nasıl etkinleştirebileceğinizi anlamaya çalışalım. Ayrıca bir bilgisayara ne gibi avantajlar sağladığını anlamaya çalışacağız. bu ayar. Prensip olarak, burada anlaşılması zor bir şey yoktur.

Intel Hyper Threading: nedir?
Bilgisayar terminolojisi ormanının derinliklerine inmek yerine, basit terimlerle ifade etmek gerekirse, bu teknoloji, merkezi işlemci tarafından eş zamanlı olarak işlenen komut akışını artırmak için geliştirilmiştir. Modern işlemci yongaları, kural olarak, mevcut bilgi işlem yeteneklerinin yalnızca %70'ini kullanır. Gerisi, tabiri caizse yedekte kalır. Veri akışının işlenmesine gelince, sistemin çok çekirdekli bir işlemci kullanmasına rağmen çoğu durumda yalnızca bir iş parçacığı kullanılır.

Temel çalışma prensipleri
Merkezi işlemcinin yeteneklerini artırmak için geliştirildi özel teknoloji hiper iş parçacığı. Bu teknoloji, bir komut akışını ikiye bölmeyi kolaylaştırır. Mevcut bir akışa ikinci bir akış eklemek de mümkündür. Yalnızca böyle bir akış sanaldır ve fiziksel düzeyde çalışmaz. Bu yaklaşım, işlemcinin performansını önemli ölçüde artırmanıza olanak tanır. Buna göre tüm sistem daha hızlı çalışmaya başlar. CPU performansındaki artış oldukça fazla dalgalanma gösterebilir. Bu ayrı olarak tartışılacaktır. Bununla birlikte, Hyper Threading teknolojisinin geliştiricileri, tam teşekküllü bir çekirdeğin gerisinde kaldığını iddia ediyorlar. Bazı durumlarda, bu teknolojinin kullanımı tamamen haklıdır. Hyper Threading işlemcilerinin özünü biliyorsanız, sonuç çok uzun sürmeyecektir.

Geçmiş referansı
Bu gelişmenin tarihine biraz dalalım. Hyper Threading desteği ilk olarak yalnızca Intel Pentium 4 işlemcilerde ortaya çıktı, daha sonra bu teknolojinin uygulanması Intel Core iX serisinde devam etti (burada X, işlemci serisi anlamına gelir). Bazı nedenlerden dolayı Core 2 işlemci yongaları hattında bulunmadığına dikkat edilmelidir. Doğru, o zaman verimlilikteki artış oldukça zayıftı:% 15-20 seviyesinde bir yerde. Bu, işlemcinin gerekli işlem gücüne sahip olmadığını ve oluşturulan teknolojinin pratikte zamanının ötesinde olduğunu gösterdi. Bugün, Hyper Threading teknolojisine yönelik destek, neredeyse tüm modern çiplerde zaten mevcuttur. Merkezi işlemcinin gücünü artırmak için, işlem komutları ve verileri işlemek için yer bırakırken, işlemin kendisi kristal yüzeyin yalnızca %5'ini kullanır.

Bir çatışma ve performans sorunu
Bütün bunlar kesinlikle iyidir, ancak bazı durumlarda veri işlerken işte bir yavaşlama olabilir. Bunun nedeni, çoğunlukla dal tahmin modülü olarak adlandırılan ve sürekli yeniden yüklendiğinde yetersiz önbellek boyutudur. Ana modül hakkında konuşursak, bu durumda durum öyledir ki, bazı durumlarda ilk iş parçacığı, o anda işlenemeyen veya işlenmek üzere sırada olan ikincisinden veri gerektirebilir. Ayrıca, CPU çekirdeğinin çok ciddi bir yüke sahip olduğu durumlar daha az yaygın değildir ve buna rağmen ana modül ona veri göndermeye devam eder. Kaynak yoğun çevrimiçi oyunlar gibi bazı programlar ve uygulamalar, Hyper Threading teknolojisinin kullanımı için optimizasyondan yoksun oldukları için ciddi şekilde yavaşlayabilir. Oyunlara ne olur? Kullanıcının bilgisayar sistemi, uygulamadan sunucuya veri akışını optimize etmeye çalışır. Sorun, oyunun veri akışlarını bağımsız olarak nasıl dağıtacağını bilmemesi ve her şeyi tek bir yığına dökmesidir. Genel olarak, bunun için tasarlanmayabilir. Bazen çift çekirdekli işlemcilerde performans artışı 4 çekirdekli işlemcilerden önemli ölçüde daha yüksektir. Sadece işlem gücüne sahip değiller.

BIOS'ta Hyper Threading nasıl etkinleştirilir?
Hyper Threading teknolojisinin ne olduğu hakkında biraz bilgi sahibi olduk ve gelişim tarihi hakkında bilgi sahibi olduk. Hyper Threading teknolojisinin ne olduğunu anlamaya çok yaklaştık. Bu teknoloji işlemcide kullanım için nasıl etkinleştirilir? Burada her şey oldukça basit bir şekilde yapılır. BIOS yönetim alt sistemini kullanmalısınız. Alt sisteme Del, F1, F2, F3, F8, F12, F2+Del vb. tuşları kullanılarak girilir. Bir Sony Vaio dizüstü bilgisayar kullanıyorsanız, özel ASSIST anahtarını kullanırken belirli bir girişi vardır. BIOS ayarlarında kullandığınız işlemci Hyper Threading teknolojisini destekliyorsa özel bir ayar satırı bulunmalıdır. Çoğu durumda Hyper Threading Teknolojisine, bazen de İşleve benziyor. Alt sistem geliştiricisine bağlı olarak ve BIOS sürümleri, bu parametrenin ayarı ana menüde veya gelişmiş ayarlarda bulunabilir. Bu teknolojiyi etkinleştirmek için seçenekler menüsüne girmeli ve değeri Etkin olarak ayarlamalısınız. Bundan sonra, yapılan değişiklikleri kaydetmeniz ve sistemi yeniden başlatmanız gerekir.

Hyper Threading neden yararlıdır?
Sonuç olarak Hyper Threading teknolojisi kullanımının sağladığı faydalardan bahsetmek istiyorum. Bütün bunlar ne için? Bilgi işlerken işlemci gücünü artırmak neden gereklidir? Kaynak yoğun uygulama ve programlarla çalışan kullanıcıların hiçbir şey açıklamasına gerek yoktur. Birçok kişi muhtemelen grafik, matematik, tasarım yazılım paketlerinin çalışma sürecinde çok sayıda sistem kaynağı gerektirdiğini biliyor. Bu nedenle, tüm sistem o kadar çok yüklenir ki, korkunç bir şekilde yavaşlamaya başlar. Bunun olmasını önlemek için Hyper Threading desteğinin etkinleştirilmesi önerilir.