Dual-Core yani çift çekirdekli işlemciler genel manada yeni yeni kullanıma başlasalar da arkasına aldığı teknolojiler çok uzun zamandır tartışılan ve geliştirilen teknolojiler. Şu anda anladığımız mantalitede bilgisayarın icad olmasından beri kafa yorulan sorular ve çözümler var. Ve dahası Dual-Core'dan daha fazlası artık hayatımızda: Quad-core(dört çekirdekli) ve yıllar geçtikçe firmalar daha fazla işlemci çekirdeğini aynı yere sığdırmaya çalışacaklar.

Makale boyunca bana ilk duyduğumda garip gelen ve bilgisayarla yeni tanışmış okurlara da uzak durabilecek terimleri açıklamaya çalıştım. Ama açık olmayan yerler olursa lütfen forumlarda sorun cevaplayalım.

Çok çekirdekli işlemcileri açıklamaya çalışırken önce işlemcilerin nasıl çalıştığından bahsedeceğiz .Ardından çok çekirdekli işlemci ne demek, çoklu iş görme, vb konulara açıklık getirmeye çalışıp, günümüzde var olan çok çekirdekli işlemciler ile beraber firmaların yakın ve uzak zamanda çıkarmayı düşündüğü yeni işlemcilere de göz atıyoruz. Yer yer bu teknolojinin verimliliğini tartışıyoruz. Umarız güzel bir araştırma olmuştur.

Bazı Kavramlar

Öncelikle şu çekirdek olayına değinmek gerek. Çekirdek ya da "core" aslında fiziksel manada işlemcinin kendisidir. Zar ya da "die" içinde yakın zamana kadar sadece bir işlemci çekirdeği bulunuyordu. Dual-Core ya da genel ismiyle çift çekirdekli işlemcilerde bir zar içinde iki işlemci çekirdeği bulunuyor.

"Cache" ya da ön bellek denilen kısım gerçekten de bir hafızadır. İşlemci kendine gönderilen yönergeleri uygularken bu bellek üzerinde işlem yapar. Yönerge ise temelde çok ilkel işlem parçalarıdır. Mesela "şu bellek adresindeki bilgiyi al, şu bellek adresine taşı. Sonra ona iki ekle ve şu adrese taşı" denebilecek tarzda işlemlerdir. Bu işlemlerin bir de işlemci yönünde 1 ve 0'lar ile ifadeleri de vardır.

Çok çekirdekli işlemcileri anlatırken mutlaka kullanılması gereken bir kavram da "thread" kavramı. Bu kavramın Türkçesi "iş parçacığı" fakat "threading" olarak kullanıldığında iple bağlama gibi bir anlam kazanıyor. Aslında bu çok da yanlış bir anlam değil zira programcılıkta "threading" yapabilme sayınız kaç tane işlemciye bağlı olduğunuz ile orantılı. İşlemciler için ise "threading" aynı anda birden fazla iş parçacığını işleme sokabilmek manasında kullanılıyor. Intel patentli Hyper Threading buna güzel bir örnek. Thread kelimesindeki karmaşadan dolayı yazı boyunca olduğu gibi kullandık.

Çoklu işleme ya da "multi processing" kavramı da çok çekirdekli işlemciler ile can ciğer kuzu sarması olan bir kavram. Aslında çoklu işleme ile multi threading arasında çok fazla fark yok. Çoklu işleme; threading ve çekirdekler ile yapılan çoklu işlemlerin tümü. Yani daha genel bir kavram. Bir bakıma multi processing, multi threading ve multi core kavramlarını kapsayan genel bir kavram diyebiliriz.

Değinmeden geçemeyeceğimiz son kavram ise "multi tasking" yani çoklu görevlendirme ya da çoklu iş görme. Bu kavram Windows ile hayatımıza çoktan girmiş bir kavram. Temelde birden fazla programın aynı anda çalıştırılmasını sağlayan bir teknoloji fakat eğer sistemde sadece bir işlemci varsa pek de manasını bulmaz. Zira programlar birbirinden bağımsız çalışıyor görünseler de aslında sadece öyle görünürler. Yani Windows bir şekilde farklı programlardan gelen yönergeleri sıralar ve işlemciye gönderir. Aslında bu kavramın ilk çıkış yeri bilgisayarın ilk kullanımına kadar gider. İlk bilgisayarda işlemci, bir "interrupt" ya da kesme aldığında, mesela klavyeden veri girildiğinde, hiç bir şey yapmadan bekliyordu. Bunun yerine kesme süresince işlemciyi çalıştırmak için ortaya atılan bu kavram. Günümüze kadar gelmiş durumda.

Zar ya da İngilizcesi ile "die", işlemcinin silikon kısmı demek.

Bir İşlemci Nasıl Çalışır?

İşlemci ya da Merkezi İşleme Birimi (Central Processing Unit, CPU) yönergelerin işlendiği yegane aygıttır. Bu yönergeler bahsettiğimiz gibi çok basit yönergelerdir. Bu yönergeler işleyecekleri verileri "register" yani yazmaç denilen bölgelerde tutar. İşlemci bu yazmaçlara sistem belleğinden daha hızlı bir şekilde erişir.

İşlemci, yönergeleri senkronize etmek için kendine göre bir saat mekanizması kullanır. İşlemcinin hızı genellikle işlemcinin saat hızı demektir. Mesela 3GHz bir işlemcinin saati saniyede 3 milyar kere vurur. (GHz, gigahertz'in kısaltılmışıdır. Hertz, bir saniyede yapılan salınımdır. Giga, Mega'dan bin kat Mega da Kilo'dan bin kat fazladır. Kilo da bin kat demektir yani bir Giga 1 milyar kere demektir.) Her vuruş bir çevrim (cycle) olarak adlandırılır. Her bir yönergenin (instruction) ne kadar çevrimde sonuçlanacağı işlemciden işlemciye değişir. Genellikle işlemci ne kadar büyük saat hızına sahipse o kadar fazla işlemi aynı anda yapar denilebilir. İşlemcilerin nasıl çalıştığı ile ilgili makalemize buraya tıklayarak ulaşabilirsiniz.

Çoklu Çekirdek Tasarımı

Çok Çekirdekli Dünyalar 2006.int.qua.ohne

Çoklu çekirdek tasarımının ilk göze çarpan avantajı elbette aynı anda birden fazla işlem yapabilme kapasitesi oluyor. Fakat bu tip bir avantaj asıl hızını, aynı zar üzerinde iki çekirdeğin ayrı ayrı işlemcilerden daha hızlı etkileşmesi ile buluyor. Aynı bellekte işlem yapan çekirdekler böylece belleğin farklı yerlerini kullanarak daha verimli kullanılmasını sağlıyor.

Aynı zar üzerinde iki çekirdek barınmasıyla, silikonun daha verimli kullanılmış oluyor ve kullanılmayan alan küçülüyor.

Öte yandan çoklu çekirdek mimarisindeki bir işlemcinin kullanımı işletim sisteminin becerisinden geçiyor. Zira ilk etapta şu sorun ile karşılaşılıyor: yönergeleri birbirinden bağımsız aynı anda çalıştırmak mümkün mü? Bu sorunun cevabı yönergenin kendisi ile alakalı. Bir yönerge kendinden sonraki yönerge için hesaplama yapıyorsa yani bu iki yönerge birbirine bağlıysa o zaman bu iki yönergeyi aynı anda çalıştırmak imkansız olacaktır. Mesela ocağı yak yemeği pişir gibi iki yönerge bir biri ile bağlıdır. Aynı anda bir thread üzerinden ocağı yakıp diğeri üzerinden yemeği pişiremeyiz. Ama tabii ki bir thread ile ocağı yakıp yemeği pişirirken diğer thread üzerinde salata da yapabiliriz. Bu bağlamda diyebiliriz ki, günümüz oyunları tek çekirdekli mimariye göre yazıldığı için 3 GHz ve tek çekirdekli bir işlemcide 2 GHz ve çift çekirdekli bir işlemciden daha hızlı çalışacaktır. Çünkü birden fazla thread ile çalışacak programlar ona uygun şekilde programlanmalıdır. Bu programlamada da esas olan yukarıda belirtildiği gibi bir yanda yemeği pişirirken bir yandan salata yapmak olmalı. Fakat şu anda bu tip dizayna sahip oyunların sayısı fazla değil. Dolayısıyla bir oyun için işlemci tek bir işlemci durumunda. Yani performans çoğu oyunda saat hızı ile orantılı durumda. Elbette ileride bu tip oyunlar yazılacaktır fakat multithreading destekli program yazmanın maliyeti çok fazla. Zira eklenecek her thread için kod yeniden ele alınmalı. Örneğin Valve'nin çok çekirdekli sistemler için geliştirdiği özel bir oyun motoru bulunmakta.

Üretim açısından ise litografideki gelişmelere rağmen çok çekirdekli bir işlemci üretiminden alınacak sonuç normalden daha az olmakta. Çünkü işlemci üzerinde çizilecek devre oldukça küçük. Sony'nin IBM ile tasarladığı ve Play Station 3 için kullanacğı Cell işlemcisinin üretim sorunu bu. Zira ürettikleri silikon gofretlerden (wafer) çok düşük verim alıyorlar. Çünkü Cell üzerinde 9 çekirdek bulunuyor ve bu kadar ince bir dizayn üretimi oldukça kısırlaştırıyor.

Başka bir dez avantaj ise iki çekirdeğin de aynı veriyolu ve bellek bant genişliğini kullanacak olmasında kaynaklanan verim düşüklüğü. Zira iki çekirdekli bir işlemci tek çekirdekli bir işlemcinin kullanacağı kaynakları aralarında paylaşacaklardır. Fakat tek çekirdekli iki işlemci hem çift çekirdekli işlemcinin yapabileceklerini yapıp hem de bu kaynakları paylaşmadan kullanabilir. Dolayısıyla çoklu çekirdek mimarisi beraberinde yeni anakart dizaynları da getirmelidir.

Çoklu İşleme Niçin Kullanılır?

Çoklu işleme ile bir anlamda çoklu görevlendirme (multi tasking) gerçek manasını bulacaktır. İşletim sistemi aynı anda iki programı birbiri ile alakası olmadan çalıştırabilecektir. Aslında bu gücü kullanırken güvenliği arttıracak iyileştirmelere gidilebiliyor. Mesela bir yandan anti virüs yazılımı tüm sistemi tararken öte yandan diğer programlar anti virüs yazılımının performan harcamasından etkilenmeden çalışabilirler. Böylece anti virüs devreye girene kaar geçecek sürede (yani işlemci anti virüs yazılımının yönergelerini sıraya sokana kadar) kötü niyetli kod parçaları işleme alınmamış olur.

Aynı zamanda çok performans isteyen bazı işler, mesela ses/video işleme gibi, normal program döngüsünden ayrılarak sistemi rahatsız etmeyecek bir şekilde yürütülebilirler.

Tabii ki çoklu işleme bazı programların yapısında var. Mesela grafik tasarım için kullanılan araçlar, Maya, 3D S-max gibi, aynı anda birden fazla işlemciyi kullanabilme yetisine sahiptirler. Böylece bir sahne render edilirken iş daha hızlı bitirilmiş olur. Aynı şekilde geliştiricilerin program derlerken harcayacakları vakit neredeyse çekirdek sayısı oranınca azalabiliyor.

Günlük ev kullanımında biraz daha uzaklaşırsak, bilimsel sahada süper bilgisayarların kullanımı bazı araştırmalar için kaçınılmaz durumda. Aslında bir süper bilgisayar yüzlerce işlemcinin aynı anda işlem yapabildiği makineler ve genellikle bi tane işlemcinin kabiliyetleri işlemci sayısı ile çarpılıyor. Eğer işlemci aynı anda daha fazla çekridek barındırırsa bu aynı alanda daha fazla işlem gücü demektir.

Sunucularda çoklu işleme kullanımı açık sebeplerden yarar sağlamakta. Çünkü sunucu genellikle bir birinden bağımsız işlemleri aynı anda yürütmeye çalışır. Mesela bir web sunucusu farklı kullanıcılar ile farklı sayfalar ile çalışmak durumunda. Bundan dolayı sunucularda aynı anda yapılabilecek işlem sayısı önemli bir verimlilik sağlamakta. Aynı şekilde bir bilgisayarın donanımını bir kaç bilgisayara paylaştırarak yapılan sanallaştırma (virtualization) olayında da işlemci üstüne binen yükü paylaştırmak için çoklu işleme ya da çok çekirdekli işlemciler büyük rol oynar.

Sayfalar: 1 2 3

"Çok Çekirdekli Dünyalar" ile ilgili kullanıcı mesajları

  1. fevzi

    Makale gerçekten güzel olmuş, ellerinize sağlık.

  2. tugba

    ben daha yenı baslayan bırı olarak harıka buldum

  3. arda

    çift çekirdek (hatta (gerçek) 4 çekirdek) mimarisi, standartı ve kullanımında (uygulama), birinde değil üçünde birden AMD en baştan beri üstün durumda, çünkü optimizasyonla ve piyasaya kağıt üstünde ve sayısal olarak ilk ben süreyim mantığını ve pazarlama mantığını intel gibi güdmeyen bir firma, k8 mimarisini en başta 2 çekirdeğe uygun olarak tasarlandı sonradan iki çekirdeği yanyana koyarak iki adet çekirdekli işlemci sürülmememiştir. intel şu anda amdnin teknolojisini kabul etmektedir, şu anda izlemektedir demiyorum buna daha önceden başladı, amd'nin HT'si intel'de CSI, Direct connect vs. teknolojilerini kendi adı altında ancak 2009'da çıkarabilecektir.torrenza, fusion vs. nezaman gelir bilinmez. torrenza 3. tedarikçileri kabul olduğundan pek yaklaşmaz gibi yada amd gibi yaklaşmaz ama fusion ile ilgili olarak diyebileceğim, intel bir grafik firmasını aldı.

    oyunlar için ayrıca saat hızı kavramı eksik olmuş göreceli saat hızı denebilir, anlayın demeyin, yeni başlıyanlar okuyor, ayrıca türkçe hataları var, okudum okudum anlamadım biraz daha dikkat lütfen,
    amd dizüstü pazarına 2006 yılında turion'la girmemiştir.
    intel 5 yıl sonra 80 çekirdekli dediğiniz işlemci x86 işlemcisi değil cell gibi flop işlemcisidir.
    ayrıca cell işlemcisi normal diye nitelediğiniz işlemcilerle değil opteron işlemcileriyle çalışmaktadır, ibm'den bir kişi (cto idi sanırım, chief technical officer) "eğer opteron olmasaydı cell işlemcisini nasıl kullanıcağımı bilemiyordum" gibi iddialı bir açıklama yapmıştır. (tabi kabul etmek gerekir ki amd ve ibm yakın çalışmasından dolayı böyle bir uyum gerçekleşebilmiştir.)
    yazı genel olarak hoşuma gitti, tebrik ediyor devamını dilerim

  4. Zinnur ALTUNDAL

    Makale bence de güzel olmuş.Tebrikler.

  5. buğra

    Amd firmasının numa teknolojisi sayesinde her işlemci kendi belleğini kendisi yönetir.Bunun sonucunda işlemcini yerel belleğine ortak kullanılan bellekten daha hızlı erişir(intel firmasının pentium d,coreduo,core2duo,core2extereme).Hafıza performansının daha yüksek çıkmsı mümkün olmaktadır.Hem entegre bellek kontrolcüsü hem de ayrı ayrı erişimi.Bunu şöylede açıklayabiliriz.Siz bir memursunuz ve arşivden dosya alıp işlemeniz gerekiyor.Arşiv ve görevlisi bir tane,sizin istediğiğniz dosyaya ulaşmanız için sıraya girip diğerlerinin dosyalarını alması gerekecek bu ise vakit kaybına yol açacak.Ama her memurun işleyeceği dosyalar ayrı depolarda tutulup ayrı görevliler olsaydı.Ozaman siz diğerlerinden etkilenmeden dosyanızı alıp işinizi tamamlar ve daha verimli olurdunuz.Amd işlemcilerinde bu yöntem benimsenmiş.Ancak bunu kullanabilmeniz için işletim sisteminizin desteklemesi lazım microsoft server2003 ve vista ultimate edition'da numa mimarisi var.
    Vmware programını duyduysanız işletim sistemleini sanallaştırıp aynı anda çalıştırıyordu.Eğer bu numa mimarisine göre düzenlenirse gerçek manada işletim sistemlerini aynı anda çalıştırabilirsiniz.Her işletim sistemi yüklendiği işlemcinin belleğine yerleşecektir.Sabit diskleride ayrı tutarsak aynı anda birden fazla işletim sistemini çalıştırmak mümkün olur.

  6. azim

    gercekten makaleniz çok güzel olmus . ben ünıversıte de okuyorum hocam bana odev verdi ve hic bır yerde bulamamıstım ve burda buldum . yazanın elıne salık cok tesekkur ederim

  7. kemal

    mükemmel bilgileriniz var makaleyi yazana ve yorumcu arkadaşlara teşekkürler

  8. Mustafa

    Teşekkürler tam aradığım şeylerden biri idi ve çok iyi şekilde hazırlamış…

  9. ramirhan ahmet sedef

    gerçekten güzel ve kapsamlı makale..
    ibm ve sun ürettiği işlemcilerde daha da fazla bilgi olsaydı tek kelime ile super bi makele olurdu. yine de iyi ve güzel tatmin edici bi makale

  10. yagmur

    yaa şu 4 çekirdekli taşıma bilgisayar işlemcinin adı neydi ödev ya cevap yazabilirmisiniz?

  11. Makale için teşekkürler, güzel olmuş

  12. mehmettt

    bilgisayar hakkındaki araştırmalarıma katkıda bulunduğunuz için teşekkür ederim. ellerinize sağlık. bir sorum olacak bilgisayarıma birden çok işletim sistemi kurmam mümkünmü acaba. şuan xp kullanıyorum ve pardus kurmayı düşünüyorum. Ancak takdir edeceğiniz gibi xp bir alışkanlık haline geldi yani bilgisayarımda hem xp yi hemde pardusu kullanmam mümkünmü acaba. teşekkürler

  13. Hacker_ali

    (((Amd firmasının numa teknolojisi sayesinde her işlemci kendi belleğini kendisi yönetir.Bunun sonucunda işlemcini yerel belleğine ortak kullanılan bellekten daha hızlı erişir(intel firmasının pentium d,coreduo,core2duo,core2extereme).Hafıza performansının daha yüksek çıkmsı mümkün olmaktadır.Hem entegre bellek kontrolcüsü hem de ayrı ayrı erişimi.Bunu şöylede açıklayabiliriz.Siz bir memursunuz ve arşivden dosya alıp işlemeniz gerekiyor.Arşiv ve görevlisi bir tane,sizin istediğiğniz dosyaya ulaşmanız için sıraya girip diğerlerinin dosyalarını alması gerekecek bu ise vakit kaybına yol açacak.Ama her memurun işleyeceği dosyalar ayrı depolarda tutulup ayrı görevliler olsaydı.Ozaman siz diğerlerinden etkilenmeden dosyanızı alıp işinizi tamamlar ve daha verimli olurdunuz.Amd işlemcilerinde bu yöntem benimsenmiş.Ancak bunu kullanabilmeniz için işletim sisteminizin desteklemesi lazım microsoft server2003 ve vista ultimate edition'da numa mimarisi var.
    Vmware programını duyduysanız işletim sistemleini sanallaştırıp aynı anda çalıştırıyordu.Eğer bu numa mimarisine göre düzenlenirse gerçek manada işletim sistemlerini aynı anda çalıştırabilirsiniz.Her işletim sistemi yüklendiği işlemcinin belleğine yerleşecektir.Sabit diskleride ayrı tutarsak aynı anda birden fazla işletim sistemini çalıştırmak mümkün olur.))))

    BU yazıya katılmakla beraber affınıza sığınarak söyliyeyim ki yanlışımıda düzeltin quade 2 core (conroe) işlemcilere baktığımızda intelin işlemcilerinde ki performansı nasıl yorumlayabiliriz amd işlemcilerde phenom uygulamasında ki performans düşüşü de gözden kaçmamalı oysaki intelin 9300 işlemcisinen dah hızlı olması beklenen amd nin 9700 işlemcisi çok daha gerilerde kalıyor işlemcilede çekirdek hızı lkadar ön bellekde önemlidir bence çünki ne kadar çok veriyi tutabilirse hafızasında istediği anda o kadar çabuk ulaşabilir eğer bir eksiğim veya yanlışım varsa düzeltirseniz çok sevinirim

  14. SimaWB

    elinize, emeğinize sağlık. güzel bir makale olmuş…

  15. sansar

    güzel olmuş gercekten ellerınıze saglık:)

  16. Gökhan

    Teşekkürler gerçekden çok güzel bir çalışma olmuş.

  17. Uqur

    Bunu Bir Slayt Olarak Yapsaydınız Ödevlerde İşimize Yarardı Ama Yinede Teşşekkürler Güzel olmus …

  18. emre

    güzel paylaşım birçok bilgi var arayanlar da umarım bu bilgilere erişim sağlayabilir tekrar teşekkürler

  19. montevo

    "çekirdek başına lisanslama" hani şu bizi ara 10 soruya cevap ver 5000 tl al yarışmaları gibi.bu kadarda dolandırıcılık olamz yaw

Mesaj gönder »

PC Labs'da eğer daha önce yayınlanan yorumunuz / mesajınız yoksa, gönderdiğiniz mesaj otomatik olarak kontrol kuyruğuna girer ve onaylandıktan sonra sitede gözükür. Yorumlardan yazarları sorumludur; PC Labs sorumlu tutulamaz.