İşlemciler geçmişte yalnızca “tek çekirdek ve çift çekirdek” gibi ifadelerle tanımlanıyordu. Sonrasında ise “iş parçacığı (thread)” kelimesini sık sık duymaya başladık ve teknik özellik sayfalarında 8 çekirdeğin yanı sıra “16 iş parçacığı” gibi ibareler yer almaya başladı.
Günümüzdeki bilgisayarlar, çip tasarımı ve üretimindeki gelişmeler sayesinde aynı anda çok sayıda iş parçacığını işleyebilen işlemcilerle güç kazanıyor. Bazı CPU’lar yalnızca çekirdek sayısı kadar iş parçacığına sahipken, bazıları ise iki katına sahip. Peki bu iş parçacıkları tam olarak nedir? Bilgisayarın kalbi olan işlemcilerin çoklu işlem kabiliyeti neden bu kadar önemli?
İş 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ı.
Eş Zamanlı Çoklu İş Parçacığı Yönetimi
Peki bir işlemcideki tek bir çekirdek aynı anda iki iş parçacığı üzerinde tam olarak nasıl çalışıyor? CPU’yu birden fazla aşaması olan karmaşık bir fabrika olarak düşünün; hammaddelerini (yani verileri) alıp düzenliyor, ardından siparişlerini (iş parçacıkları) çok sayıda küçük göreve ayırarak sıralıyor.
Tıpkı yüksek hacimli bir araba üretim hattının her seferinde bir veya iki olmak üzere çeşitli parçalar üzerinde çalışması gibi. İşlemcinin de belirli bir komut setini tamamlamak için belirli bir sırayla çeşitli görevleri yapması gerekir. Ardışık düzende yürütülen bu iş yükleri genelde pipeline, yani iletişim hattı veya boru hattı olarak bilinir. Bazı işlemler önceki adımlar tamamlanan kadar bir süre beklemede kalır.
İşte bu noktada SMT devreye giriyor. Bir işlem hattındaki her parçanın durumunu takip etmeye adanmış donanım, üzerinde çalışılan iş parçacığını durdurmadan farklı bir iş parçacığının boşta kalan aşamaları kullanıp kullanamayacağını belirlemek için kullanılır.
Masaüstü CPU’ların çok çekirdekli hale gelmeden çok önce çok iş parçacıklı hale gelmesi, SMT’nin uygulanmasının çok daha kolay olduğunu gösteriyor Intel’in Northwood mimarisi söz konusu olduğunda, toplam yonga kalıbının %5’inden daha azı iki iş parçacığının yönetiminde yer almıştır.
SMT özellikli CPU çekirdekleri, işletim sistemine ayrı mantıksal çekirdekler olarak görünecek şekilde düzenlendi Fiziksel olarak aynı kaynakların çoğunu paylaşıyorlar, ancak bağımsız hareket ediyorlar.
Masaüstü işlemciler çekirdek başına en fazla iki iş parçacığı işleyebilir, çünkü işlem hatları nispeten kısa ve basittir. Ayrıca tasarımcılar tarafından yapılan analizler iki iş parçacığının en uygun sınır olduğunu gösteriyor.
4 ve 8 İş Parçacığı
Yelpazenin diğer ucunda eski Intel Xeon Phi veya yeni IBM POWER gibi devasa sunucu işlemcileri var. Büyük verilerin üstesinden gelebilen yongalar çekirdek başına sırasıyla 4 ve 8 iş parçacığı işleyebiliyor. Bunun nedeni, çekirdeklerinin paylaşılan kaynaklara sahip çok sayıda işlem hattı içermesi.
Özetlemek gerekirse, son tüketiciye ulaşan işlemciler maksimum iki iş parçacığını üstlenen çekirdeklerle geliyor. Bu uzun bir süre değişmeyecek gibi görünüyor, ancak zaman neler getirir bilinmez. Artık çiplerin başa çıkması gereken çok farklı iş yükleri ortaya çıktı. Nihayetinde ise CPU tasarımı konusunda Xeon Phi ve IBM POWER gibi farklı yaklaşımlar gördük.
Bir bilgisayarda çok sayıda iş parçacığı ile uğraşmak zorunda olan tek yonga merkezi CPU değildir. Aynı anda binlerce iş parçacığı ile ilgilenen, çok özel bir role sahip bir tür daha var: GPU.
GPU İş Yükleri
Temel yapısı itibarıyla GPU’lar CPU’lara göre çok farklıdır. Grafik yongaları fiziksel olarak daha büyük, çok daha fazla transistöre sahip, daha fazla güç tüketiyor ve muazzam sayıda fazla iş parçacığını işleyebiliyor.

Örnek olarak AMD’nin Navi 21 çipine sahip Radeon RX 6800 ekran kartını ele alalım. RX 6800 tam olarak 60 Hesaplama Birimi (CU) içeriyor. Ayrıca her bir Hesaplama Birimi’nin içinde 64 ayrı iş parçacığını çalıştırabilen daha küçük birimler (çekirdek olarak da anılır) yer alıyor. Bu da hareket işlem halindeki minimum 3.840 iş parçacığı demek.
GPU ve CPU Arasındaki Fark
Peki bir GPU merkezi işlemciden çok daha fazlasını nasıl işleyebilir? Her CU’da iki set SIMD (tek komut, çoklu veri) birimi mevcut ve bunların her biri aynı anda 32 ayrı veri öğesi üzerinde çalışabiliyor. Her biri farklı iş parçacıklarını üstlenebilir. Ancak önemli nokta şu ki, işlem biriminin her iş parçacığı tam olarak aynı komut setleri üzerinde çalışıyor olmalı.
GPU ve CPU arasındaki temel farkı daha iyi anlamış olmalısınız. Bir masaüstü işlemci çekirdeği iki iş parçacığını işleyebiliyor. Komut setleri tamamen ilgisiz süreçlerden, tamamen farklı olabilir. Bu da demek oluyor ki grafik yongaları aynı anda birçok farklı görevi yürütebilir.
Grafik işlemciler genellikle benzer süreçlerden aynı işlemleri tekrar tekrar gerçekleştirmek için tasarlanmakta, ancak iş yüklerinin hepsi büyük ölçüde birbirine paralel. Günümüzün en büyük oyunları, karmaşık 3D görseller nedeniyle sadece birkaç milisaniye içinde inanılmaz miktarda matematiğin işlenmesini gerektiriyor. Kısacası inanılmaz sayıda iş parçacığıyla mücadele etmek gerek.
İş Parçacığı ve CPU Performansı
Çoklu iş parçacığı bazı kullanım senaryolarında kritik rol oynarken, bazı durumlarda ise neredeyse hiç fayda sağlamaz. İşlemci inceleme videolarımızda genelde Cinebench sonuçlarını sizlerle paylaşıyoruz. Burada “tek çekirdek” ve “çoklu çekirdek” gibi iki ayrı skor yer alıyor.
Tek çekirdek testinde yalnızca bir iş parçacığı, diğerinde ise CPU’nun toplamda kaldırabileceği kadar çok iş parçacığı kullanılmakta. Çok iş parçacıklı test skorları her zaman tek iş parçacıklı skorlardan daha yüksektir. Ama neden?
Cinebench, tıpkı bir oyunda olduğu gibi 3D grafikler oluşturan bir test yazılımı. Az önce GPU’ların 3D grafikler oluşturmak için çok sayıda iş parçacığını paralel olarak işlediğini belirtmiştik. Çok sayıda çekirdeğe sahip işlemciler normal olarak işlemleri çok daha hızlı şekilde yapabiliyor. Eğer bu çekirdekler SMT (Intel tarafında Hypher-Threading) teknolojisine sahipse işler daha da hızlanıyor. Başka bir deyişle, çekirdekler aynı anda birden fazla iş yükünü sırtlayabiliyor, iş parçacığı üzerinde çalışabiliyor. Cinebench skorlarındaki farklılığın sebebi de bu.
Tahmin edebileceğiniz üzere, çekirdek sayısı arttıkça çiplerin boyutu ve dolayısıyla fiyatları da artıyor. SMT teknolojisinden yararlanan performans çekirdekleri her zaman büyük faydalar sağlıyor gibi görünebilir, ancak bu anlık duruma bağlıdır. Bazı uygulamalar ve oyunlar çok çekirdekli performansa odaklanırken bazıları da tek çekirdeğe odaklanır.
Örneğin 12 çekirdek ve 12 iş parçacıklı bir CPU olan AMD Ryzen 9 3950X ile yapılan bazı testlere bakalım. 36 oyunla yapılan testlerde bazı oyunlar SMT etkin halde %16’ya varan performans kazançları sergilerken, bazıları %12’ye varan oranlarda düşük performans sergiledi. Ancak ortalama fark sadece %1 seviyesindeydi.
Çok çekirdek ve iş parçacığı kullanımı özellikle çevrimiçi ve açık dünya oyunlarında çok daha faydalı. Öte yandan, SMT etkin olarak kullanılırken performans nadiren de olsa bazı oyunlarda düşüş gösterebiliyor. Bir oyun veya uygulama, işlemcinin bellek sisteminden (önbellek, bant genişliği ve RAM) çok fazla talepte bulunuyor olabilir. Bir çekirdekte belleğe erişim talep eden iki iş parçacığı, bir iş parçacığının bazen beklemesi gerekirken durmasına neden olabilir. Bir CPU ne kadar çok iş parçacığıyla çalışıyorsa önbellek sistemi o kadar önemli hale gelir.
Özellikle belirtelim, SMT özelliği neredeyse her zaman performansa olumlu katkıda bulunur. Bazı yazılım ve oyunlar çok çekirdek performansından yararlanırken bazıları da tek çekirdek performansına odaklanır.
Oyunlarda İş Parçacığının Önemi
Oyun oynarken az önce bahsettiğimiz Process Explorer yazılımından faydalanabilirsiniz. Cyberpunk 2077, Spider-Man Remastered ve Shadow of the Tomb Raider gibi birkaç oyuna göz atalım. Her üçü de PC ve konsol için geliştirildi, bu nedenle 4-8 iş parçacığı kullanmasını bekleyebiliriz.
İlk bakışta oyunlar çok fazla iş parçacığı kullanıyor gibi görünüyor. Ancak işlem parçacıklarını daha derinlemesine incelediğimizde daha net bir resim elde ediyoruz. Shadow of the Tomb Raider’a yakından bakalım. Aşağıda görebileceğiniz gibi, iş parçacıklarının büyük çoğunluğu CPU’nun çalışma süresi söz konusu olduğunda (ikinci sütun, saniye cinsinden) varlık göstermiyor. Süreç ve işletim sistemi yüzden fazla iş parçacığı oluşturmuş olsa da, bunların çoğu çok kısa sürelerde çalışıyor.
Cycles Delta değeri, süreçteki iş parçacığı tarafından gerçekleştirilen toplam CPU döngü sayısını gösteriyor. Tomb Raider’da sadece iki iş parçacığı tarafından yönetildiğini görüyoruz.
Döngü sayısı çok küçük bir sayı gibi görünebilir. Ancak işlemcinin saat hızı 4,5 GHz ise bir döngü sadece 0,22 nanosaniye sürer. Yani 1,3 milyar döngü yalnızca 300 milisaniyenin biraz altına eşit.
Elbette tüm oyunlar bu şekilde çalışmıyor, sadece bir örneğe baktık. Önceden piyasaya sürülen oyunlar çoğunlukla tek çekirdeğe odaklanıyordu. Intel de bildiğiniz gibi uzun bir süre boyunca tek çekirdek performansına odaklandı, oyunlarda daha iyi performans gördük. Ancak yeni oyunlarda çoklu çekirdek ve iş parçacığının öneminin daha fazla olduğunu söyleyebiliriz.
2003 yılında çıkış yapan Call of Duty’e yakından baktığımızda tablonun tamamen farklı olduğunu görebiliriz. Eski yıllardaki oyunları çalıştırmak için gereken süreçte her şey bir ana iş parçacığı üzerine kuruluydu. Bunun nedeni, eski CPU’ların düşük çekirdeğe sahip olması ve yalnızca belirli modellerin SMT desteklemesiydi.
Call of Duty süreç ve işleyişte neredeyse her şeyi yapmak için tek bir iş parçacığı üretirken, Shadow of the Tomb Raider düzgün bir şekilde eş zamanlı olarak çok iş parçacıklı süreçten (CPU’nun desteklediği kadar) yararlanıyor.
Artık en yeni konsollar 2 yönlü SMT özellikli 8 çekirdekli işlemciler barındırıyor. Masaüstü tarafındaki işlemciler çok sayıda çekirdek ve iş parçacığına sahip. Sonuç olarak, gelecekteki oyunların çok daha yoğun şekilde iş parçacığı kullanacağını söylemek mümkün.











