Bu yazıda Bilgisayar Mimarisi dersinde öğrendiğimiz ve araştırma ödevimiz olan Hyperthreading kavramının ne olduğundan ve nasıl ortaya çıktığından bahsedeceğim.
Hyper- Threading Teknolojisi Nedir, Neden Ortaya Çıkmıştır?
Bir işlemci birden fazla küçük parçacıklardan yapılır. Herhangi bir zaman içinde parçacıkların bazıları kullanılmayı beklerken diğer parçacıklar çok meşgul durumda olabilir. Bu durumda da hız ve harcanan enerji açısından işlemciden tam verim alamamak anlamına gelmektedir. Bu şekilde de performansta ciddi kayıplar ortaya çıkmaktadır. Hem vakit hem de harcanan enerji de kayıplara yol açmaktadır.
Yazan: Nuran Bahar
Yaşanan bu sorunlardan dolayı performans artışı için bir yarış ortaya çıkmıştır. İşlemci firmaları tarafından bu konuda çalışmalar başlatılmıştır. Masraf yapmadan performansın artırılmasına overclock örnek olarak verilebilir fakat bu durumda da çeşitli sıkıntılar ortaya çıkmaktadır: işlemci ısısının aşırı artması, açılan uygulamalardaki yavaşlamalar ve en kötüsü olarak da kitlenmeler.
Diğer bir yöntem olarak cache belleğin artırılması düşünülebilir. Fakat bu da daha fazla transistör kullanılmasını ve çekirdek yüzeyinin daha geniş olmasını gerektirdiği için maliyetli biz çözüm olmaktadır.
Aynı şekilde işletim sistemimizin ve uygulamalarımızın desteklemesi ve anakartımızın uygun olması şartıyla işlemci sayısının da fazla olması toplam yükü paylaşacakları için performansın artmasını sağlar fakat bu yöntem de maliyet açısından elverişli bir yöntem değildir.
Chip multiprocessing de performans artırılmasını sağlamak için üretilen bir yöntemdir. Bu yönteme göre iki işlemci çekirdeği tek bir yüzeye yerleştirilir bu çekirdekler ortak veya ayrı cache bellek kullanabilirler bu işlemin yapılması da kolay ve ekonomik değildir.
Zaman dilimine bağlı olarak da komutların işlenmesi üreticiler tarafından düşünülmüştür. Buna göre işlemci belirli zaman dilimleri ile kendini biçimleyerek farklı komut dizilerini işlerler. İşlemci daha verimli kullanıldığından dolayı performans artar. Ancak komutlardan birisi bekleme konumunda olduğu zaman bir zaman kaybı meydana gelir ki bu durum sistem için elverişli bir durum olmaz. Simultaneous Multithreading de performansın artırılması için oluşturulan bir yöntemdir.
Simultaneous multithreading’in kelime anlamı eşzamanlı çoklu komut işlemedir. Yani çoklu komut dizileri tek bir işlemci üzerinde aynı anda işlenirler. İşlemci kaynakları dinamik olarak işlemlere dağıtılır. Bu yöntem Hyper-threading yöntemininin temelini oluşturmaktadır.
Hyper Threading teknolojisi bir işlemcinin iki işlemci gibi davranmasını sağlamak üzere geliştirilmiş bir teknolojidir.
Hyper threading, işlemcinin farklı kısımlarının aynı zamanda farklı işlemler üzerine çalışmasına olanak verir. Bu yöntemle işlemci birden çok işlemciymiş gibi davranır. Hyper threading özelliği olan bir CPU, CPU’nun durum hatlarını saklayan iki tane devre setinden oluşur. Bunlar birden fazla register ve komut gösterici içerirler. Bu devreler işlemcinin asıl işini gerçekleştirmezler, bu birimler işlemcinin o an çalıştığı hatları geçici olarak saklayan saklama birimleridir. Bu yöntemle iki fiziksel işlemci varmış gibi işlemler görülür. Bir uygulama yapılırken genelde işlemcinin bazı parçaları işlem yapmadan diğer işlemlerin bitmesini beklerler. Hyper threading teknolojisi de bu performans kaybını azaltmak için geliştirilmiştir. Bunu da bazı uygulamalarda çift işlemci varmış gibi davranarak sağlar.
Bu özellik Intel’in Pentium 4 işlemcileri ile birlikte bulunmuştur ve performansı %20’lerden %30’lara yükselten bir tekniktir. Uygulamaların bazılarında ise bu oran %40’lara kadar çıkabilmektedir.
Pentium 4 3.06 GHz işlemciler İntel’in iki bağımsız threadi aynı anda işleyebilen ilk masaüstü işlemcilerdir. Yukarda bahsedilen Simultaneous Multithreading ile birlikte Win2000/ XP, Linux gibi işletim sistemleri P4 3.06 Ghz işlemciler için uygunluk göstermektedirler. Yani iki mantıksal işlemcinin bir fiziksel işlemci kaynaklarını kullanmasına olanak vermektedir. Fiziksel olan işlemci kendi başına bir çip olarak düşünülebilir. Mantıksal olan iki işlemci ise işletim sistemi tarafından görülen işlemcilerdir.
Her Uygulama İçin Hyper- threading Uygun Mudur?
Bu teknolojinin her uygulamada aynı performansı göstermesi beklenemez. Yapılan bazı testlerde hyper threading teknolojisi yokken tek bir komut için CPU kullanım yüzdesi %100 olarak tutulmuştur. Rendering uygulamasında bu teknolojiyle çift işlemci performansına ulaşılamamasına rağmen tek bir fiziksel işlemciye göre ciddi artışlar gözlenmiştir.
Bir dezavantaj olarak çift fiziksel işlemci kullanımı mp3 kodlama uygulamasında %34 oranında bir performans sağlarken hyper- threading %3 lük bir performans kaybına neden olmuştur.
Photoshop gibi çok sayıda komut içeren çizim uygulamalarında hyper- threading performans kaybına neden olmuştur. Buna karşılık iki fiziksel işlemci kullanılan bir testte %12’lik bir kazanç gözlenmektedir.
Aynı şekilde 3D uygulamalarında da tek işlemcili sistemlere nazaran çift işlemcilerin performans yüzdesi daha fazladır.