İplikler (çekirdeklere karşı) ve puanlanmış CPU saat hızı, etkisi nedir?


0

CPU'm 2GHz'de derecelendirilmişse ve 8 iş parçacığını destekleyen 4 çekirdeğe sahipse, 8 iş parçacığının tümü nominal saat hızında çalışıyor mu? Yoksa çekirdeklerden iki kat daha fazla iplik olduğundan, her biri 1 GHz'de mi çalışıyorlar?


2
2 GHz hızında çalışıyorlar
Ramhound

Yanıtlar:


5

İlk olarak, çekirdekler "sahip" dişlere sahip değildir. Bir iş parçacığı bir işlemin özelliğidir. İşlemler ve iş parçacıkları, işletim sisteminin yarattığı şeylerdir ve CPU'nun gerçekten doğrudan bir konsepti yoktur. Ürünlerinin "dört çekirdekli ve sekiz iş parçacığı" olduğunu iddia eden reklamverenler yanıltıcı terminoloji kullanıyor.

Çekirdekleriniz bir veya iki mantıksal işlemciler . İşletim sistemi söz konusu olduğunda, mantıksal bir işlemci (LP) koşabilir bir iplik. Donanım yazılımı ayarlarında hiper-işlemi devre dışı bıraktıysanız veya CPU'nuz HT'yi desteklemiyorsa, çekirdek başına bir LP var. HT'yi destekliyorsa çekirdek başına iki LP. (Gelecekteki x86 / x64 işlemciler, çekirdek başına ikiden fazla LP uygulayabilir.)

Tipik bir Windows sistemindeki işlemler, toplu olarak, herhangi bir zamanda yüzlerce ila binlerce iş parçacığına sahip olabilir. Her bir işlemdeki iş parçacığı sayısını Görev Yöneticisinin "Ayrıntılar" sekmesinde (Windows 7 ve önceki sürümlerde "İşlemler" sekmesi olarak adlandırılır) görebilirsiniz - sadece "Konular" sütununu etkinleştirin.

Çoğu Windows sistemindeki iş parçacıklarının büyük çoğunluğu çoğu zaman bir şey için "bekliyor": G / Ç'lerin tamamlanmasını bekliyorlar, zamanlayıcıların süresinin dolmasını bekliyorlar, bir sayfa hatası bekliyorlar çözümlenmek. Bekleyen Konular - Unix ve Linux "bloke" terimini kullanıyorlar - CPU zamanını kullanmaya çalışmıyorlar ve ne bekliyorlarsa bitene kadar kullanmıyorlar.

Beklemeyen çoğu iş parçacığı ya "koşuyor", yani aslında mantıksal bir işlemcide çalıştırılıyor demektir, ya da "hazır", yani çalışacakları, ancak tüm LP'ler şu anda diğer iş parçacıklarıyla meşgul. (Hazır, Koşma ve Beklemenin yanı sıra, burada ilgisini çekmeyen birkaç durum daha var.)

Takip eden her şey sadece "çalışan" dişlerle ilgilidir.

HT etkin değilse veya HT etkinse ancak beklemeyen iş parçacığı sayısı çekirdek sayısından daha yüksek değilse, performans HT'nin devre dışı bırakılması ile aynı olmalıdır. Windows dahil olmak üzere çoğu modern işletim sistemi, LP'lerden daha fazla Koşu iş parçacığı bulunana kadar çekirdek başına yalnızca bir LP kullanmaya çalışmaktadır. Her iki LP'yi başka bir çekirdek boşta bırakırken, bir çekirdeğin LP'lerine iki iplik koymak hiç mantıklı olmaz. İşletim sistemleri her zaman% 100 başarılı değiller, ancak çoğu zaman oldukça başarılı oluyorlar.

Bir çekirdekteki iki LP'nin her ikisi de çalışan iş parçacığıysa, iki iş parçacığı tarafından yapılan "hesaplama" çalışmasının toplamı muhtemelen biraz daha büyük olun ... genelde% 40 ila% 60 oranında ... OS'nin iki iplik arasındaki zaman dilimlemesini yapan tek bir çekirdeğiniz varsa. Ve yapılan toplam iş neredeyse her bir iş parçacığının kendi başına bir çekirdek üzerinde çalıştığından biraz daha az olacaktır.

Çalışan bir iş parçacığının (işletim sisteminin bildiği kadarıyla) yine de LP'sinde durduğunu unutmayın. Bunun yaygın bir örneği, iş parçacığının henüz CPU L1 önbelleğinde olmayan RAM'e eriştiği durumdur. Gerekli verileri dış seviye önbellekten veya RAM'den L1 önbelleğe getirmek zaman alır. Bu süre zarfında iş parçacığı, komut akışında ilerleme kaydedilemiyor olabilir, ancak Windows bunu bilmiyor. CPU bellenimi, bu süreyi çekirdek içindeki diğer LP'de çalışmak için kullanabilir. Veya RAM içeriğini bekleyen iş parçacığı için bazı sıra dışı işler yapabilir. İşletim sistemi bu gibi şeylerden habersiz bir şekilde habersiz, sadece konuyu “Çalışıyor” olarak bildirir ve “duraklama” sırasında ileriye doğru bir ilerleme kaydetmese bile “kullanılmış CPU zamanını” biriktirmeye devam eder.

Öyleyse ... her bir LP'de bir çekirdekte bulunan Hyperthreading ile aynı anda iki iplik çalıştırabiliriz. Ancak bu, her bir çekirdeğin artık iki çekirdeğin hesaplama kaynaklarına ("yürütme birimleri") sahip olduğu anlamına gelmiyor; saat hızının iki LP arasında bölündüğü anlamına gelmiyor.

Hyperthreading, çoğu dişlinin bir çekirdeğin yürütme birimlerini her zaman tam olarak kullanmadığı gerçeğinden faydalanır. Aslında, bu durum oldukça nadirdir ... Bu yüzden HT de olduğu gibi yapabilir. HT, ikinci bir iş parçacığının işlemcide bir arada bulunmasını sağlar aynı zamanda ilk olarak ve ideal olarak bu ikinci iplik, ilk kullanmayan yürütme ünitelerini kullanabilir. Bu işlemcinin mikro kodunda uygulanır.

Aslında, CPU üretici yazılımında "birinci" ve "ikinci" dişler arasında hiçbir fark yoktur; biri diğerinden daha fazla dikkat vermeyi seçmez. Bellenim, CPU'nun yürütme birimlerinin mümkün olduğunca meşgul olmasını sağlayarak, mümkün olduğunca çok iş yapılmasını sağlar. Hyperthreading, tek seferde çalışması için iki komut akışı verir ve böylece CPU'nun yürütme birimlerinin daha fazla kullanılmasını sağlar.

İşlemci yazılımı, işletim sisteminin hangi konu olarak ne de "konu bağlamında anahtar" olarak algılandığından bile haberdar değil. Sadece üzerinde çalışılacak iki farklı komut akışının olduğunu, her birinin talimat işaretçisini, yığın işaretçisini ve diğer mimari kayıtların birçoğu için kendi değer kümelerini içerdiğini bilir. Ve bazen, bellenim tarafından bilinmeyen nedenlerden dolayı, işletim sistemi gelir ve tüm bunları değiştirir (bir thread bağlam anahtarı).

HT'nin yapmadığı bir diğer şey, işletim sisteminin iş parçacığı önceliği kavramının herhangi bir bölümünü uygulamaktır. Öyleyse, tek bir HT'd çekirdeğinin LP'lerinde iki iş parçacığınız varsa ve işletim sistemi bu iş parçacıklarının farklı öncelikleri olduğunu düşünüyorsa, CPU'daki HT ürün yazılımı bunu bilmeyecektir. Özellikle, yüksek öncelikli dişlilere tercihli olarak yürütme birimleri atamayacaktır. İşletim sistemi, hangi işlemcilerin hangi CPU'larda çalıştırılacağına karar vermek için iş parçacığı önceliklerini kullanır.

Hyperthreading'in nasıl çalıştığı hakkında daha fazla bilgi için, bkz. Bu makale Ars Technica'da. Maalesef, resimler sitelerini yeniden barındırdıkları için görünmüyor - belki de onlara gönderilen bir e-posta bu sorunu çözecektir. Windows'un "zamanlamaları" nasıl işlediği hakkında daha fazla bilgi için, bkz. "Zamanlama" bölümüne bakın. Windows Internals Solomon, Russinovich tarafından, et al .


-2

Temel olarak, işletim sisteminiz iş parçacığı sayınızı çekirdek sayısı olarak görür. Bir iş parçacığı tam kapasite olmadığında, diğer iş parçacığını daha fazla kullanır ve bilgisayarınız daha hızlıdır. (Bence)


Ne söylediğinizi destekleyen bu cevaba bazı referanslar eklemeyi düşünün. Söylediğinden beri merak ediyorum. bence bu yüzden bu bir cevap ya da bir tahmin olup olmadığını merak ettim. Bununla birlikte, okumaya devam edin "Neden yorum yapmak için 50 itibara ihtiyacım var" Yorumlamaya nasıl başlayabileceğinizi anlamanızı sağlamak için.
Pimp Juice IT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.