Geçmişte sadece tek çekirdekli işlemciler vardı. Sonrasında çip teknolojileri gelişti, iki, dört, sekiz ve on altı derken muazzam hızlı işlemciler görmeye başladık. Sunucu tarafında ise 128 çekirdeğe sahip CPU’lar piyasaya çıkmaya başladı. Bu çekirdeklerin yanında ayrıca “iş parçacığı (thread)” şeklinde bir terim ön plana çıkıyor ve sayı aniden ikiye katlanıyor. Peki nasıl oluyor bu? Simultaneous Multithreading (Eşzamanlı Çoklu İş Parçacığı) teknolojisi sayesinde. Diğer adıyla Hyper-Threading (HT) veya SMT.
Öncelikle baştan belirtelim, Hyper-Threading ve SMT teknolojileri aynı şeyi ifade ediyor. Her ikisi de çoklu iş parçacığı yönetimine dayanan bir teknoloji. Intel sadece bu teknolojiyi pazarlarken HT ismini kullanmakta. AMD tarafında ise genel isimlendirme, yani “SMT” ismine yer veriliyor.
SMT’nin ne işe yaradığını merak ediyorsanız kapsamlıca anlatmaya çalışacağız. Basitçe açıklayacak olursak, eşzamanlı çoklu iş parçacığı çözümleri sayesinde her çekirdek 1 veya daha fazla iş parçacığı içerebiliyor, bu iş parçacıkları yine mantıksal çekirdek gibi davranıyor. Böylelikle birkaç işlem farklı iş parçacıkları üzerinde çalışabiliyor, başta çok çekirdek gerektiren görevler olmak üzere sistem performansı artıyor.
Eşzamanlı Çoklu İş Parçacığı Nedir?
Eşzamanlı çoklu iş parçacığı veya SMT, tek bir CPU çekirdeğinin aynı anda birden fazla iş parçacığını yönetmesine olanak tanıyan modern işlemci tasarımının bir özelliği. Bu teknoloji, birden fazla iş parçacığının aynı anda çalışmasına izin vererek bir CPU’nun verileri daha verimli bir şekilde işleyebileceği fikrinden yararlanmakta. Bir iş parçacığı veri beklerken başka bir iş parçacığı bu boş zamanı çalışmak için kullanabiliyor, böylece işlemcinin kaynakları daha etkili bir şekilde kullanılabiliyor. Nihayetinde ise özellikle aynı anda birden fazla uygulama çalıştıran sistemlerde veya çok sayıda iş parçacığını işleyebilen karmaşık yazılımlarda performans ve verimlilik artıyor.
Başka bir şekilde ifade etmek gerekirse SMT, fiziksel çekirdek sayısını artırmadan bir CPU’yu daha yetenekli hale getirme metodu. Tıpkı aynı sahada çalışan iki işçinin uyum içinde işleri yürütmesi gibi. Biri duraklaması gerektiğinde diğeri işe hız kesmeden devam edebilir. SMT şüphesiz teknoloji dünyasına kazandırılmış çok önemli bir çözüm. Avantajları, bir işlemcinin veri kullanılabilirliğindeki gecikmeler nedeniyle beklemek ve zaman kaybetmek zorunda kalacağı senaryolarda daha belirgin şekilde ortaya çıkar. Karmaşık hesaplamalar veya veri işleme gibi belirli görevler, tek bir fiziksel işlemcinin iki ayrı işlemci gibi çalışmasını sağladığı için bu teknolojiden önemli ölçüde faydalanabilir.

Bu fikir ilk olarak 1968 yılında IBM tarafından ortaya atıldı, zaman içinde CPU alanında devrim yarattı. CPU’larda yer alan fiziksel çekirdeklerin her biri iş parçacığı olarak bilinen sanal çekirdeklere bölünürken, her çekirdeğin aynı anda iki işi yapması mümkün hale geliyor. SMT veya Hyper-Threading etkinleştirildiğinde, işlemci aynı anda iki talimat setini işleyebiliyor. Bu da özellikle birden fazla uygulama veya karmaşık program çalıştırırken bilgisayarı daha hızlı ve daha duyarlı hale getiriyor.
“Donanım iş parçacıkları” veya diğer adıyla “sanal çekirdekler” neredeyse tüm kaynakları birbirleri arasında paylaşmakta. Özelliğin temel amacı çekirdek içindeki yürütme birimlerini daha iyi kullanmak. Çalışma şeklini farklı bir şekilde örneklendirecek olursak: Birden fazla şeridi olan bir otoyol olarak düşünün. Arabaların sırada beklemesi yerine hepsi aynı anda ilerleyebiliyor.
Nasıl Çalışır?
SMT’nin çalışma şekli doğası gereği biraz karmaşık ve anlaşılması biraz zor olabilir. Ancak biz en ince detaylarına inmeden önemli kısımlarla birlikte açıklamaya çalışacağız. SMT aynı anda iki talimatı işleyebilecek şekilde yapılandırılmış tek bir işlemci çekirdeği. Esasen bir çekirdeği iki ayrı çekirdeğe dönüştürür.
SMT çalışır durumdayken işletim sistemi işlemciyi iki çekirdekli olarak görür. İşletim sistemleri bu çekirdek ve iş parçacığı birlikteliğini Mantıksal İşlemciler olarak tanımlar. Ancak bu şekilde görülmelerine rağmen hepsi aynı değil. Tüm bu ekstra iş parçacıkları, belirli bir uygulamanın CPU üzerindeki yükü eşit olarak bölebildiği en iyi senaryoda yaklaşık %50-%60 performans artışı sağlayabiliyor. Ancak bu denli yüksek kazançlar nadiren gerçekleşiyor. Yani çift çekirdek gibi hareket etse de asla gerçek çift çekirdeğin verdiği performansını elde edemeyiz.
Diğer yandan eşzamanlı çoklu iş parçacığı kullanımı duruma bağlı, çünkü CPU çekirdeğinin tek seferde birden fazla komutu çalıştırması için tüm çekirdeklerin zaten halihazırda meşgul olması gerekiyor. Bu arada fiziksel çekirdekler kaynaklar üzerinde önceliğe sahip. İş parçacıkları fiziksel bir çekirdekten daha yavaş olduğundan dolayı her zaman devreye girmek zorunda değil.
Aktif Edilmeli mi?
Evet, kesinlikle aktif edilmeli. Faydası bazı uygulama ve oyunlarda azken bazılarında çok büyük olabilir. Yani tamamen kullanım senaryosuna bağlı.
Peki çoklu iş parçacığı kullanımı oyunları nasıl etkiliyor? Her şey geliştirme sırasında başlıyor ve oyun geliştiricisinin bir oyunu özellikle eşzamanlı çoklu iş parçacığı kullanımını göz önünde bulundurarak kodlaması gerekiyor.
Oyun geliştiricileri yapay zeka, arka plan yüklemesi ve ses işleme gibi çeşitli iş parçacıkları tarafından ele alınacak bir oyunu bölebilir ve FPS, tamamlanması en uzun süren işlemle sınırlandırılabilir. Grafik sürücüleri ve diğer GPU ve donanımla ilgili yazılımlar da arka planda çalışacaktır. Daha yüksek çekirdek ve iş parçacığı sayısı, oynadığınız yazılımın veya oyunun değerli sistem kaynakları ve CPU döngüleri için savaşmak zorunda kalmamasını sağlayabilir.
Maalesef ki çoğu eski oyun SMT göz önünde bulundurularak kodlanmadı. Neden mi? Çünkü eşzamanlı çoklu iş parçacığını kullanmak ve görevleri CPU çekirdekleri ve iş parçacıkları arasında bölmek üzere özel destek eklemek için açıkça ayrı kodlamalar gerekli. Ancak yüksek çekirdek ve iş parçacığı sayısına sahip işlemciler arttıkça destekli oyunların sayısı da artmaya devam ediyor.
SMT’den özellikle daha fazla yararlanan yazılım örnekleri var: Video kodlama veya video işleme uygulamaları gibi. Burada kareler veya bir görüntünün belirli bölümleri kendi iş parçacıklarında işlenebilir.
Oyun Testleri
Ryzen 9 3900X özelinde yapılan bazı kapsamlı testler mevcut. CPU, 36 oyunla yapılan kıyaslamalarda SMT etkinken ortalama %1 daha düşük FPS veriyor. Bazı oyunlarda kare hızı oranları artarken bazı oyunlarda küçük miktarlarda düşüş gösterebiliyor. Düşüşler genel olarak %5’in altında ve test edilen 36 oyundan 31’inde fark yok denecek kadar az.
SMT etkin haldeyken yalnızca bazı oyunlara olumlu katkı sağlamış: Assassin’s Creed Odyssey, Counter-Strike: Global Offensive, Forza Horizon 4, World War Z (Vulkan). Devre dışı bırakıldığında daha iyi sonuçlar veren oyunlar ise şöyle: Shadow of the Tomb Raider, Just Cause 4, Prey ve Hitman 2.
Ancak sadece ortalama kare hızı oranlarına bakmamak gerekiyor. %1 düşük performans değerleri karşılaştırıldığında sonuçlar SMT lehine dönüyor. SMT’yi etkin haldeyken test edilen 36 oyunda %1’lik performans artışı gözlemlendi. Bu testlerin çok sayıda çekirdeğe ve iş parçacığına sahip Ryzen 9 3900X üzerinde yapıldığını tekrar vurgulayalım. Farklı işlemcilerde ve farklı mimarilerde sonuçlar değişebilir.
Sonuç olarak SMT ve Hyper-Threading’i devre dışı bırakmanızı önermiyoruz. Eğer kapattığınızda performansı artıracağından emin olduğunuz bir oyun varsa bunu yapabilirsiniz. Aslında çoklu iş parçacığı kullanımının %1 gibi düşük oranda olsa bile FPS’yi düşürmesi hiç mantıklı gelmiyor. Bunun nedeni Ryzen çiplerin iki CCD’ye ayrılması olabilir. AMD’nin işlemcileri, çekirdekleri CCD (Core Complex Die) adı verilen iki ayrı birimde tutuyor.
Hyper-Threading
Hyper-Threading, ilk kez 2002 yılında Intel tarafından Northwood tabanlı Pentium 4 işlemcilerde benimsenmeye başladı. Dediğimiz gibi SMT ile mantık aynı, Intel sadece x86 mikroişlemcilerini pazarlama noktasında bu ismi kullanıyor. Şubat 2002’de Xeon sunucu işlemcileri ve Kasım 2002’de Pentium 4 masaüstü işlemcileriyle tanıtıldı, halen modern çiplerde kullanılmaya devam ediyor.
Intel, 12. Nesil “Alder Lake” işlemcileriyle birlikte E-Core adı verilen verimlilik çekirdeklerini hayata geçirmişti. Bu çekirdekler SMT’ye destek sunmuyor, yalnızca P-Core dediğimiz performans çekirdekleri SMT yani HT destekli. Yani bazı yongaların mantıksal çekirdek sayısı fiziksel çekirdek sayısının 2 katı değil.
Ek olarak bir hatırlatma yapalım, mavi ekip özellikle Core i5 serisi olmak üzere bazı işlemcilerinde bu özelliği devre dışı bırakıyor.
Teknolojinin Faydaları
SMT, yani HT’nin sağladığı avantajları kısaca listeleyelim:
- Çoklu Görevler: Sistem SMT-HT’yi destekliyorsa, CPU çekirdeğinin farklı iş parçacıklarında aynı anda birkaç işlem çalışabilir.
- Kaynak Kullanımı: SMT-HT kullanıldığında, kaynaklara ihtiyaç duyabilecek aynı anda çalışan birkaç işlem nedeniyle kaynaklar boşta kalamaz ve büyük ölçüde kullanılamaz. Bu nedenle, sistemin genel verimliliği ve performansı artar.
- Duyarlılık: Eşzamanlı yürütme, kullanıcı için yanıt süresini azaltmaya yardımcı olabilir.
- Artan Verimlilik: SMT, birden fazla iş parçacığını eşzamanlı olarak çalıştırarak belirli bir sürede tamamlanan toplam görev sayısını artırabilir.
Intel Bu Teknolojiyi Bırakabilir, AMD’de Performans Artışı Daha Büyük
Bu kelimeleri yazdığımız sıralarda Intel’in işlemcileri HT teknolojisiyle geliyordu. Ancak duyumlarımıza göre şirket gelecekteki işlemcilerinde (Arrow Lake veya Lunar Lake) çoklu iş parçacığı uygulamasından vazgeçecek.
David Huang, SMT’nin en yeni Intel ve AMD CPU’lar üzerindeki etkisini analiz etmek için bazı kıyaslamalar yaptı. Sonuçlar oldukça ilginç. Ryzen çipler SMT etkinleştirildiğinde performansta daha büyük bir artış görüyor, ancak güç çekimleri de daha büyük bir marjla artıyor. Intel tarafında, SMT (Hyper-Threading) ile performans zayıflığının birden fazla örneğini görüyoruz, ancak güç çekişindeki artış nominal: Ryzen yongalarındaki %20-40’a kıyasla tek yüzdelik rakamlar.
Diğer bir detaya gelince, Core i9-13900K’nın çekirdek başına güç tüketimi (hem HT ile hem de yoksun) Ryzen 9 7950X’inkinden önemli ölçüde daha yüksek. İki amiral gemisi arasında %90-100 gibi büyük farklardan bahsediyoruz. Çoğu durumda, Zen 4 çekirdeği SMT olmadan ve SMT ile sırasıyla 7-10W ve 9-13W çekiyor.
Core i9-13900K, Hyper-Threading etkin değilken 23-24W güç çekiyor ve etkinleştirildiğinde tüketim birkaç watt artıyor. Bu sonuçlar, AMD CPU’ların Intel muadillerine göre çoklu iş parçacığı için daha fazla alana sahip olduğunu göstermekte. Ya da Intel işlemciler bir çekirdeğin kaynaklarını tek bir iş parçacığı ile rakip Ryzen çiplere göre daha iyi kullanıyor.
SMT
Simultaneous Multithreading, AMD’nin işlemcilerine uyguladığı bir teknoloji olsa da şirkete özel değil. Ayrıca AMD’nin bu teknolojiyi Intel’den daha geç kullanmaya başladığını belirtelim. Kırmızılılar daha önce de çoklu iş parçacığı desteği sunuyordu, ancak bu destek Bulldozer serisi CPU’larda CMT (Clustered Multi-Threading, Küme Tabanlı Çoklu İş Parçacığı) şeklindeydi.
CMT’nin tek bir iş parçacığını hızlı bir şekilde çalıştıramama gibi büyük bir dezavantajı vardı, sadece iyi toplam verime sahip iki iş parçacığı mevcuttu. Bulldozer’in genel olarak düşük performans sunmasının sebeplerinden biri de buydu. AMD yıllar içinde Zen mimarisini değiştirdi ve böylelikle şirketin geleceği de değişti. SMT destekli ilk işlemci, 2017 yılında tanıtılan Ryzen 7 1700 oldu. Şirket Zen mimarilerinde SMT’yi tıpkı Intel gibi kullanmaya başladı, buna devam ediyor.
İş Parçacığı Nedir?
İşlemci iş parçacığı, bir bilgi işlem görevini yapmak için gereken en küçük talimat dizisini ifade ediyor. Bu çok kısa bir liste olabileceği gibi, muazzam uzunlukta da olabilir.
Şimdi cevaplamamız gereken yeni bir soru var, süreç nasıl işliyor? Bilgisayarınızda Windows çalıştırıyorsanız Windows ve X tuşuna birlikte basın, karşınıza çıkan listeden Görev Yöneticisi’ne tıklayın. Karşınıza doğrudan “İşlemler” sekmesi çıkacaktır.
Burada sistemde o anda çalışmakta olan işlemlerin bir listesini görüyoruz. Listedeki bazı uygulamaları kendimiz çalıştırıyoruz, bazıları ise kullanıcıdan bağımsız olarak sistem tarafından ayarlandığı üzere kendi başına çalışıyor. Bilgisayarda açılan uygulamalar bazıları ayrıca ek arka plan süreçleri oluşturabilir. Yani ana programa bağlı perde arkasında çalışan bazı görevlerden bahsediyoruz.
Görev Yöneticisi’ndeyken Performans sekmesine geçip CPU bölümünü seçtiğinizde, karşınıza çıkan sayfadan o anda kaç işlemin devam ettiğini ve toplam aktif iş parçacığı sayısını görebilirsiniz.
“Tanıtıcılar” kısmında görünen değer, sürekli olarak işleyen dosya süreçlerinin sayısını ifade eder. Bir işlem RAM’deki ya da depolama sürücüsündeki bir dosyaya her erişmek istediğinde bir dosya tanıtıcısı oluşturulur. Her biri onu yaratan sürece özgüdür, bu nedenle bir dosyanın aslında çok sayıda tanıtıcısı olabilir.
İş parçacıklarına dönersek, Görev Yöneticisi bu konuda fazla bilgi sağlamıyor. Örneğin her bir işlemle ilişkili iş parçacığı sayısı gösterilmiyor. Ancak Microsoft’un daha çok detay sağlayan Process Explorer adında başka bir programı var.
Burada çeşitli süreçlerin ve iş parçacıklarının genel görünümünü çok daha ayrıntılı bir şekilde görebiliyoruz. Arayüzü özelleştirmek isterseniz Process, CPU ve Threads gibi tanımların olduğu bölüme sağ tıklayarak “Select Columns” seçeneğine tıklayabilirsiniz. Bazı programlar nispeten az sayıda komut dizisi oluştururken, Sistem süreçlerini yöneten uygulamalar gibi bazı görevler çok sayıda komut dizisi oluşturabiliyor.
Zaman zaman kullanıcılar işlemci, RAM ve HDD gibi donanımların yüksek seviyelerde kullanılmasından şikayet ediyor. Böyle durumlarda performans sorunları yaşanabiliyor. Nitekim bazı sistem görevleri ve yazılımlar çok sayıda işlem gerektirirken yüksek kaynak tüketebiliyor. Arka planda çalışan her bir görev, ilişkili donanıma ek bir yük demektir.
Çalışma Mantığı
Herhangi bir iş parçacığı için nihai hedef merkezi işlem birimidir (CPU). Her zaman değil, ama buna birazdan geleceğiz. Çipler komut listesini alır, bunları anladığı bir “dile” çevirir ve ardından öngörülen görevleri yerine getirir. İşlemcinin derinlerinde konumlanan özel donanımlar iş parçacıklarını analiz etmek için depolar, ardından talimat listesini işlemcinin o anda yaptığı işe en uygun olacak şekilde sıralar.
Eski Intel Pentium işlemcilerde bile, iş parçacığı yönergeleri performansı en üst düzeye çıkarmak için yeniden sıralanabiliyor. Günümüzün CPU’ları ise çok daha karmaşık iş parçacığı yönetim araçları içeriyor. Yalnızca mevcut işlemler değil, gelecekteki olası iş yükleri de hesaplanıyor.

Branch (kollara ayırma-dallanma) tahmini tekniği uzun zamandır kullanılmakta ve CPU’nun önemli bir parçası. İş parçacığı dizisi “If, then, else” gibi komutlar içeriyorsa, tahmin devresi en olası sonucun ne olduğunu tahmin eder. Bu tahminden gelen yanıt daha sonra CPU’nun talimat deposunu kontrol etmesini ve mantıksal kararın gerektirdiği işleri yürütmesini sağlar.
Tahmin doğruysa, tüm iş parçacığının işlenmesini beklemek zorunda kalmadan kayda değer miktarda zaman kazanılır. Eğer değilse işlem süreçleri daha da uzar, bu da istenen bir şey değildir. Çip tasarımcılarının “branch predictor” tahminleri üzerinde çok zaman geçirmesinin sebebi de budur.
İster masaüstü ister sunucu alanında olsun, 1990’ların merkezi işlemcileri sadece bir çekirdeğe sahipti. Sonuç olarak aynı anda birkaç talimat yapabilmelerine rağmen (süperskalar olarak bilinir), işlemciler aynı anda yalnızca bir iş parçacığı üzerinde çalışabiliyordu.
Sunucular ve üst düzey iş istasyonlarının çok sayıda iş parçacığı ile, yani çok sayıda görev ile başa çıkması gerekiyor. Pentium dönemindeki sistemlerde iş yüküne yardımcı olmak için genellikle iki çekirdek bulunurdu. Bununla birlikte, bir işlemcinin aynı anda birden fazla iş parçacığını idare edebileceğini öne süren fikir uzun süre tartışıldı.
Onlarca yıl boyunca bir işlemcinin aynı anda birden fazla iş parçacığı üzerinde çalışma olasılığını araştıran çeşitli projeler geldi ve gitti. Ancak bu projeler hala herhangi bir zamanda yalnızca bir iş parçacığından gelen talimatların yürütülmesine odaklanıyordu.
Çekirdek üzerinde birden fazla iş parçacığı komutu çalıştırabilen işlemci fikri (yani eşzamanlı çoklu iş parçacığı-SMT), gerekli donanımsal yetenekler sağlanana kadar beklemek zorunda kaldı. Nihayetinde Intel, 2002 yılında piyasaya sürdüğü Pentium 4 işlemciyle birlikte hedefine ulaştı. Bu CPU tam SMT özelliğine sahip ilk masaüstü işlemciydi. SMT, Intel tarafında Hyper-Threading teknolojisi adı altında piyasaya sürdü. Bu terimi de daha çok önce sıkça duymuş olmalısınız. Öte yandan AMD’nin işlemcileri de SMT desteğiyle geliyor ve şirket tarafından özel bir isimlendirme yapılmadı.