Çift çekirdekli işlemcim neden dört çekirdekli işlemci olarak tanındı?


Yanıtlar:


43

Bahsedildiği gibi, çekirdek başına 2 yivli çift çekirdekli bir sisteme sahipsiniz.

Bu, Intel tarafından hyperthreading olarak pazarlanmaktadır ve yıllar boyunca çeşitli farklı üreticiler tarafından çeşitli şekillerde yapılmıştır.

En basit şekliyle açıklamak gerekirse, her bir CPU çekirdeği bir "çekirdek" ve bu çekirdeğin etrafındaki her bir iş parçacığı için durum ve işlem bilgilerini tutan çeşitli mimariden oluşur. Tek bir dişli çekirdeğin bir defada tutulan 1 iş parçacığı değerinde durum bilgisini tutma mimarisi vardır, hiper iş parçacıklı bir çekirdek, iki ayrı durum bilgisini tutar ve iki ayrı işlemin çekirdeğin farklı kısımlarını gerektirdiği sürece aynı anda çalışmasına izin verir ( Çekirdek olarak gerçekleşmesi oldukça muhtemel olan ve çok sayıda farklı işlem birimi türünden oluşan birden fazla birimden oluşmasıdır.

CPU'nun sisteme nasıl göründüğünü basitleştirmek için her bir köprü ucu ayrı bir CPU olarak görülür, bu nedenle çift çekirdekli, çekirdek başına 2 işlemcili dört çekirdekli işlemci olarak görünür.

Ayrıca, işletim sisteminin Core-parking (yeni Intel işlemcilerde bulunan bir özellik) kullanması da mümkündür; işletim sisteminin hiper iş parçacıklı bir çekirdeğin yarısını askıya almasına izin verir, böylece hiper iş parçacılığın ekstra işlem kabiliyetine gerek duyulmadığında, tek diş performansı Çekirdek artık 2 iş parçacığı arasında önbelleğini paylaşmadığından ve artık çekirdekli önbelleği tek bir iş parçacığına tamamen ayırabildiğinden, artırıldı.


Açıklama için teşekkürler. Öyleyse burada bir ipliğin bir çekirdeğin bir çekirdeğin işlemci için ne olduğunu söyleyebilir miyiz?
seriousdev,

2
Bir şekilde evet. İşletim sistemi işlemciyi görüyor, işlemci üzerinde kaç tane çekirdek olduğunu biliyor ve sırayla her çekirdeğin kaç tane iş parçacığını desteklediğini görüyoruz, bu nedenle gördüğünüz CPU kullanımı artık "çekirdek başına" yerine "iş parçacığı başına" sayılıyor. O değil oldukça (her iplik aslında tam teşekküllü işlemci çekirdeği olarak olmayan bir hyperthreading farkında OS görünmüyor gibi) bu kadar basit ama bunun genel bir fikir.
Mokubai

@Mokubai çekirdek-park bağlantısı çalışmıyor.
Biswapriyo

49

Bunun nedeni, işlemcinizin desteklediği hiper-dişler . Hyperthreading, ekstra bir işlemcinin eşdeğeri değildir, ancak çok iş parçacıklı uygulamalarda performansı gerçekten artırabilir. Fiziksel olarak mevcut olan her işlemci çekirdeği için, işletim sistemi iki sanal işlemciye yöneliktir ve mümkün olduğunda iş yükünü aralarında paylaşmaktadır.


7
Bu fiziksel vs mantıksal çekirdekler olarak bilinir mi?
xdumaine

11
Evet, fiziksel bir çekirdek - şey ... fiziksel. Dokunabilirsin. Hiper iş parçacıklı çekirdekler gerçek değil, bu nedenle mantıklı. Ayrıca, fiziksel çekirdekleri sanallaştırma yoluyla da mantıksal çekirdeklere ayırabilirsiniz.
Keltari

3
@Keltari aslında, bunun fiziksel bir parçası var ... Hyperthreading, bir CPU çekirdeğindeki bir donanım bileşenidir (ve sadece donanım düzeyinde devre dışı bırakılabilir). Ayrıntılar için bu Intel teknik incelemesine bakın. Temel olarak, iki fiziksel yürütme birimi arasında bir çekirdeğin kaynaklarını paylaşır. Teknik olarak, OS tarafından hiper iş parçacıklı bir çekirdek içinde görülen her iki çekirdek de "mantıklı" dır, hem fiziksel hem de mantıksal bir tane yoktur.
Atılım

1
true, hyperthreading işlemcinin fiziksel bir parçasıdır, ancak fiziksel bir çekirdek değildir.
Keltari

1
HT'yi düşünmenin en iyi yolu, kardeşi ile ayrı çekirdeklerden çok daha fazla kaynağı paylaştığı "bir buçuk temel" dir. Bununla birlikte, "kendi başına" bir iş parçacığı yürütme yeteneğine sahiptir ve işletim sistemi (iş parçacığıyla ilişkilendirdiğiniz) iş parçacığı yürütme birimi olarak değerlendirir.
crasic,

12

İşler, her bir saat döngüsünde bir cpu talimatının yapıldığı günlerden çok daha karmaşık.

Şimdi her komut için birkaç adımdan oluşan bir boru hattı var . Bir süre önce olmasına rağmen 41 kadar duydum ve şu anki cpu boru hatlarının nasıl göründüğü hakkında hiçbir fikrim yok. Boru hattının yeterince uzun olması durumunda, son talimat bitmeden önce, bazen aynı saat döngüsünde yeni bir talimatı başlatacağınızı, böylece tek çekirdeğinizin aynı anda iki şeyi etkili bir şekilde yapabileceğini biliyorum.

Yine de burada bir numara var. Bunu, işlemcinizin belirli bir programdaki talimatlarla çiğneme hızını arttırmak için kullanamazsınız. Dahil olan bir doğruluk sorunu vardır: Bir sonraki talimat, önceki talimatın henüz belirlenmemiş sonucuna bağlı olabilir. Uzun boru hattından güvenli bir şekilde yararlanmak için , çip, işletim sistemi zamanlayıcısına iki ayrı işlemci çekirdeği sunacak ve her bir çekirdeğe gönderilen alternatif talimatlar verecek, böylece aynı "çekirdeğe" yönelik iki talimat hiçbir zaman aynı boru hattında olmayacak. Bu şekilde, eşzamanlı olarak yapılan talimatların birbiriyle karışmayacağından emin olabiliriz. Buna hiper-diş çekme denir .

Burada, hiper-diş çekme işleminin, işlemcinizden çıkardığınız iş miktarını önemli ölçüde artırabildiği halde, bu kadar çok fiziksel çekirdeğe sahip olmak kadar iyi bir yerde olmadığını belirtmekte fayda var. İş yükünüze bağlı olarak,% 15’lik az bir iyileşme veya% 40 kadar bir gelişme anlamına gelebilir. Bazı durumlarda, kalan çekirdeklerin bu çekirdek için L1 / L2 önbelleğine tam özel erişime sahip olması için bu özelliği devre dışı bırakmak bile isteyebilirsiniz (bu bazen özel veritabanı sunucuları ile yapılır).

Çipiniz, 4 ipliğin 2 çekirdeğine sahip olduğunu bildirdiğinde, bu, hiper-uçlamayı destekleyen çift çekirdekli bir işlemci olduğu anlamına gelir.


2

Bu intel sayfasına bir göz atın - hiper-okumanın işlerinizi ne kadar hızlandırdığını gösteren çok sayıda animasyonu var.

En Utilization of Processor Resourcesiyi animasyondur, bakın ve "ilerlet" düğmesine tıklayın.


1

Bu neden? İşlemciyi 4 işlem birimine bölen çekirdek başına 2 iş parçacığı olduğu için mi?

Bunu basitçe söylemek gerekirse, cevap evet. CPU'nuzun her bir çekirdeği iki bağımsız ipliği destekleyebilir, yani toplamda 4 tane. Ancak, dört çekirdekli, tek iş parçacıklı bir işlemci ile aynı performansa sahip olduğu anlamına gelmiyor. pratik olarak çift çekirdekli çift iş parçacıklı bir cpu performansı dört çekirdekli tek iş parçacıklı bir CPU'nun performansından daha düşük. AMD Phenom X4 gibi.


Neden biliyor musun?
seriousdev,

1
Bunun nedeni, çift dişli bir çekirdekte donanım kaynaklarının (yeniden sıralama tamponu gibi) iki iş parçacığı arasında paylaşılması, tek dişli bir işlemcideki tüm kaynakların bir çekirdeğe ayrılmasıdır. Malç dişli bir çekirdeğe sahip olmanın donanım kullanımınızı ve iş hacminizi arttırdığına değinmeye değer, ancak gecikme için kötüdür. İlgili birçok takas var. Yani "performans" kelimesi burada gerçekten belirsiz. Sıradan insanlar için, tek bir dişlinin gecikme süresi anlamına gelir.
aminfar
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.