Çok Çekirdekli İşlemci Nedir?

click fraud protection

1990'ların ortalarından beri, masaüstü CPU'ları tek bir pakette birden fazla CPU çekirdeği sunuyor. Bu çok çekirdekli bir işlemcidir. İlk tasarımlar iki veya dört CPU çekirdeğiyle sınırlıyken, modern CPU'lar tek bir CPU'da 64'e kadar fiziksel çekirdek sunar. Yüksek çekirdek sayıları, masaüstü CPU'lar için standart değildir ve genellikle üst düzey iş istasyonları veya sunucular için ayrılmıştır. Modern masaüstü CPU'lardaki tipik çekirdek sayıları 4 ile 16 arasındadır. Peki çok çekirdekli CPU'ları modern bilgisayarlarda baskın yapan şey nedir?

Tek çekirdek

Tarihsel olarak, tek çekirdekli bir CPU, aynı anda yalnızca tek bir görevi gerçekleştirmekle sınırlıydı. Bu, bir dizi sorunla birlikte gelir. Örneğin, modern bir bilgisayarda çalışan çok sayıda arka plan işlemi vardır. Bir CPU aynı anda yalnızca bir şeyi işleyebiliyorsa, bu arka plan işlemlerinin işlem süresini ön plan işleminden uzaklaştırması gerektiği anlamına gelir. Ek olarak, önbellek kayıpları, verilerin nispeten yavaş RAM'den alınması gerektiği anlamına gelir. Veriler RAM'den alınırken, işlemci verileri alana kadar hiçbir şey yapamadığı için boşta kalır. Bu, çalışan işlemi ve tamamlanmasını bekleyen diğer işlemleri tutar.

Modern tek çekirdekli işlemciler, bütçeye uygun çok çekirdekli CPU'ların yükselişi sayesinde gerçekten bir şey olmasa da, daha hızlı çalışmak için diğer modern hileleri kullanabilecekler. Bir boru hattı, bir talimatın işlenmesinin her bir farklı bölümünün aynı anda kullanılmasına izin verir, saat başına yalnızca bir ardışık düzen aşamasının kullanılmasına kıyasla önemli bir performans artışı sağlar Çevrim. Geniş bir işlem hattı, saat döngüsü başına her işlem hattı aşamasında birden fazla talimatın işlenebileceğini görecektir. Sıra Dışı işleme, talimatların daha verimli bir şekilde programlanmasına olanak tanır. Bir dal tahmincisi, bir dallanma talimatının sonucunu tahmin edebilecek ve önceden tahmin edilen cevabı önceden çalıştırabilecektir.

Bu faktörlerin tümü iyi çalışır ve bir miktar performans sağlar. Bununla birlikte, bir veya daha fazla çekirdek eklemek, bunların tümüne izin verir ve bir seferde verilerin iki katının işlenmesini sağlar.

çok çekirdekli

İkinci bir çekirdek eklemek, ham performansı ikiye katlaması gerektiği gibi geliyor. İşler maalesef bundan daha karmaşık. Program mantığı genellikle tek iş parçacıklıdır, yani bir programın herhangi bir zamanda yapmaya çalıştığı tek bir şey vardır. Ancak olabilecek olan, diğer süreçlerin diğer çekirdeği aynı anda kullanabilmesidir. Bireysel programların çoğunda doğal bir performans artışı olmamasına rağmen, ekstra bir programın sağlanması işleme kaynağı, sınırlı bir kaynak için rekabeti etkin bir şekilde azaltır, bu da bir performans artışı. Bu performans artışı, yalnızca CPU zamanı için rekabeti azaltmaktan, en çok tek bir sistemden atlarken fark edilir. Çift çekirdekli bir CPU'ya, çekirdek sayısını daha da artırmanın getirileri azalır, ancak daha fazlası genellikle daha iyi.

Çok çekirdekli sistemlerden uygun şekilde yararlanmak ve gerçekten sağlam bir performans artışı görmek için programların birden çok işlem iş parçacığı kullanacak şekilde programlanması gerekir. Çok iş parçacıklı mantığın, genellikle öğrenilmesi zor olduğu ve birçok potansiyel tuzak olduğu için güvenilir bir şekilde yapılması çok zordur. Bir örnek tuzak, yarış durumu olarak bilinir. Bir yarış durumunda, bir süreç, başladığı başka bir sürecin sorunsuz çalışacağını varsayar, daha sonra diğer sürecin sorunsuz çalışmasına dayanan bir şey yapmaya çalışır. Örneğin, bir işlemin bir belgeyi kapatıp diğerini açmak için başka bir işlemi başlattığını hayal edin. Orijinal işlem, ikinci işlemin tamamlanıp tamamlanmadığını düzgün bir şekilde kontrol etmezse, bu beklenmedik sonuçlara yol açabilir. Örneğin, ilk belgeyi kapatırken bir sorun varsa, orijinal işlem belgeye daha fazla veri yazdığında belge hala açık olabilir.

Bu yarış koşulunda, bir değişkenin değeri, yeni değer kendisine yazılmadan önce ikinci kez okunur ve yanlış genel cevaba yol açar.

Termal sorunlar

Çok çekirdekli işlemcilerin mücadele ettiği en büyük sorunlardan biri ısıdır. Bir CPU çekirdeği o kadar fazla ısı vermese de, ikisi daha fazlasını verir. Yüksek çekirdekli CPU'larda, bu ısı konsantrasyonu, CPU sıcaklığını yönettiği için daha düşük bir yükseltme saatine neden olabilir. Daha düşük bir yükseltme saati, tek iş parçacıklı uygulamalarda daha düşük performansa neden olur. Bu genellikle oyun performansı kıyaslamalarında görülebilir. Video oyunları genellikle tek bir iş parçacığına bağlıdır. Bu nedenle, tek iş parçacıklı performans genellikle oyun oynamak için kritik öneme sahiptir. 16 çekirdekli modeller gibi yüksek çekirdekli CPU'lar genellikle yüksek performanslı kutulardan alınır. Buna rağmen, tek iş parçacıklı kıyaslamalarda daha düşük çekirdek sayısına sahip "daha az" CPU'lar tarafından düzenli olarak daha iyi performans gösterdikleri görülebilir. Bu sorun, 64 çekirdekli AMD Threadripper gibi ultra yüksek çekirdekli işlemcilerde, saat hızının üst düzey masaüstü işlemcilerden belirgin şekilde daha düşük olduğu durumlarda daha da belirgindir.

başarılar

Birçok uygulama, birden çok CPU çekirdeğini uygun şekilde kullanabilir. Örneğin, CPU oluşturma, paralelleştirilmesi nispeten kolay bir iştir. Performans iyileştirmeleri 64 çekirdeğe kadar ve daha yükseğe kadar görülebilir, ancak şu anda tek bir CPU 64'ten fazla çekirdek sunmamaktadır. Pek çok uygulama, sıralı mantığa bağlı oldukları için çok iş parçacıklı olamaz. Bunlar, çok iş parçacıklı bir programın hızlandırılmasına yakın bir yerde görmese de, çok iş parçacıklı programların ve diğer tek iş parçacıklı programlar diğer CPU çekirdeklerini kullanabilir, işlemci süresini boşaltarak daha iyi verim.

Mimari seçenekler

Masaüstü işlemcilerde, çok çekirdekli bir CPU içindeki her bir CPU çekirdeği genellikle aynı olmuştur. Bu homojenlik, çekirdekler üzerinde zamanlamayı basitleştirir. Aynı yinelenen tasarımın kullanılması, geliştirme maliyetlerinin düşük tutulmasına da yardımcı olur. Ancak mobil işlemciler uzun süredir heterojen çekirdek mimarileri kullanıyor. Bu tasarımda, iki hatta üç katmanlı CPU çekirdeği vardır. Her katman aynı süreçleri çalıştırabilir, ancak bazıları güç verimliliği için tasarlanmıştır ve diğerleri performans için ayarlanmıştır. Bu, pille çalışan cihazlar için bir başarı reçetesi olduğunu kanıtladı, çünkü birçok görev daha yavaş olanı kullanabilir. güç açısından verimli çekirdekler, pil ömrünü artırırken yüksek öncelikli işlemler hala yüksek hızda çalıştırılabilir ihtiyaç duyulduğunda.

Masaüstü CPU mimarisi de heterojen bir çekirdek tasarım yönünde ilerliyor. Intel'in Kızılağaç Gölü 12inci nesil Core CPU hattı, bunu yapan ilk masaüstü CPU'dur. Bu durumda, daha küçük çekirdeklerin ana itici faktörü, aynı madalyonun iki yüzü olmasına rağmen, mutlaka güç verimliliği değil, termal verimliliktir. Birden fazla güçlü çekirdeğe sahip olmak yüksek performans sağlarken, birçok verimli çekirdek, ana çekirdekleri çok fazla etkilemeden arka plan görevlerini yerine getirebilir.

Çözüm

Çok çekirdekli CPU, yalnızca aynı kalıpta olmasa da, genellikle tek bir pakette birden çok işlem çekirdeği içeren bir CPU'dur. Çok çekirdekli CPU'lar pek çok programa doğrudan bir performans artışı sunmaz, ancak çekirdek sayısını artırarak, tek iş parçacıklı programların CPU zamanı için o kadar rekabet etmesine gerek kalmaz. Bazı programlar, birden fazla çekirdeğin tüm avantajlarından yararlanarak, mevcut oldukları kadarını doğrudan kullanabilir. Bu, büyük bir performans artışı sağlar, ancak termal ve güç kısıtlamaları nedeniyle bu artış, çekirdeklerin iki katına çıkarılmasıyla doğrudan iki katına çıkması zorunlu değildir.