Intel'in Hyper Threading Teknolojisi Nedir? Intel'in Hyper-Threading teknolojisi, tek bir fiziksel işlemcinin çok sayıda komut zincirini eş zamanlı olarak işlemesi ile performans artışı sağlamasıdır. Hyper-threading teknolojisine sahip Intel işlemci, mantıksal olarak iki adet işlemciden oluşmaktadır. Herbir işlemci fiziksel olarak aynı çip üzerinde bulunmasına rağmen farklı komut zincirlerini işleyebilir. Geleneksel iki farklı IA-32 mimarisine sahip fiziksel işlemci kullanan sistemlerin aksine, hyper-threading teknolojisinde mantıksal işlemciler tek bir işlemci kaynağını paylaşırlar. Bu yüzden hyper-threading mimarisine sahip bir işlemci, işletim sistemine iki işlemcili bir sistem gibi görünmesine rağmen, iki gerçek fiziksel işlemcinin sağladığı performansı vermeyecektir. Intel Netburst mimarisine sahip işlemciler tek komut zincirinde optimum performansı vermek üzere tasarlanmalarına rağmen, bir saat çevriminde sadece kaynaklarının %35 kadarını kullanmaktadır. Hyper-threading teknolojisi ise tek işlemci çekirdeği üzerinde çoklu komut zinciri işleme yeteneği ile işlemci kaynaklaırnı daha efektif kullanarak genel performansı arttırmak için geliştirilmiştir. Gelecek senelerde Intel'in masaüstü işlemcilerinde de bu teknolojiyi görmek olasıdır. İki ya da daha fazla işletim sistemi destekleyen işletim sistemleri ve yazılımlarda bu teknolojiyi otamatik olarak desteklemelerine rağmen, işletim sistemi ve yazılım tarafında kod modifikasyonları bizlere maksimum performansı sağlayacaktır. Nasıl Daha Fazla Performans Sağlarım? Performans arttırma yarışı hiç durmadan devam etmektedir ve çok sayıda bilim adamı bu konuda çalışmaktadır. Masraf yapmadan performans arttırmak deyince aklımıza işlemcinin overclock edilmesi gelmektedir ki, bu işlemin yan etkilerini tahmin edebiliriz. İşlemci ısısı yükselmesi, uygulamalarda yavaşlamalar ve daha kötüsü kilitlenme problemleri... İşlemci Kaynaklarının Arttırılması: Örnek olarak işlemci cache belleğinini arttırılması. Bu işlem daha fazla transistor kullanılması ve işlemci çekirdek yüzeyinin daha geniş yüzeye sahip olması anlamına gelecektir ki üretim maliyeti artacaktır. Intel Pentium III Xeon işlemciler piyasaya sürüldüğünde hatırlıyorum 512kb'lik cache belleğe sahip Pentium III XEON 550MHz işlemci 1000$, 1MB cache bellekli olan 2000$ ve 2MB cache bellekli olan ise 4000$ idi. Ancak cache belleğin 2 katına çıkması, hakkaten fiyatının 2 katına çıktığı gibi 2 katı performans sağlıyormuydu. Herşey sadece %10-%30 oranında ilave bir performans artışı için katlanabilir değerlerdi. Çok sayıda işlemci: Sistemimizde çok sayıda işlemci destekleyen bir anakart üzerine yerleştireceğimiz işlemciler , toplam yükü bölüşecekleri için performansımızı arttıracaktır ancak bu yapıya sahip sistemlerin fiyatları azımsanacak gibi değildir. CMP : CMP, iki işlemci çekirdeğinin tek bir yüzeye yerleştirilip, ortak veya ayrı cache bellekleri kullanması demek oluyor ki, iki işlemci çekirdeğinin tek bir yüzeye yerleştirilmesi kolay ve ekonomik bir yöntem değildir. Zaman Dilimli Çoklu Komut İşleme: İşlemci belirli zaman dilimleri ile kendini anahtarlayarak farklı komut zincirlerini işler. Daha verimli kullanıldığından dolayı performans artar. Ancak komutlardan biri bekleme modunda ise gereksiz bir zaman kaybı anlamına gelir ki, bu yapıda bir sistemde ekonomik değildir. Eşzamanlı Çoklu Komut İşleme : Çoklu komut zincirleri tek bir işlemci üzerinde eşzamanlı olarak işlenir. CPU kaynakları dinamik olarak dağıtılır . Bu işlemde Intel'in hyper-threading teknolojisinin temelidir. Hyper-Threading Nasıl Çalışır? Multitasking, yani aynı anda birçok uygulamanın çalışabilmesi, uzun süredir var olan bir teknoloji. Peki bu işlem nasıl gerçekleşiyor? Gerçekten komut zincirleri eşzamanlı olarak mı işleniyor? Windows NT/2000/XP işletim sistemlerinde Task Manager uygulamasını açtığımızda farklı komut zincirlerinin eşzamanlı olarak işlendiğini görüyoruz. Her ne kadar bu şekilde görsekte işlin teorisinde işlemcinin bu uygulamalar arasında sürekli anahtarlanması ve bir uygulamadan düzenli olarak diğer uygulamayı işlemeye geçmesi söz konusudur. Hyper-Threading, ilk olarak XEON MP işlemciler ile birlikte duyuruldu. Ancak XEON (Prestonia, 512kb L2 cache) bu teknoloji ile daha önce pazara sunuldu. Aşağıdaki şekilde görüldüğü gibi, çift fiziksel işlemcili bir sistemde komut zincirleri farklı fiziksel işlemcilere dağılırken, hyper-threading destekli sistemimizde iki farklı komut zinciri eşzamanlı olarak aynı işlemci üzerinde işlenebilmektedir. Hangi Uygulamalarda Hyper-Threading Teknolojisini Kullanmalıyım? Hyper-Threading teknolojisinin performansını her uygulamada beklemek olası değildir. Aşağıda vereceğimiz bazı uygulamalarda hyper-threading'in uygulama performansımıza olumsuz etkilerininde olduğunu göreceğiz. Testler çift işlemci destekli Intel 860 cipset'li anakart üzerinde gerçekleştirilmiştir. Sistem içeriği; 512MB RDRAM, 64MB Geforce3 DDR ekran kartı, Western Digital WD300BB hard disk, XEON 2.2 işlemci ve 6X DVD. İşletim sistemi olarak Windows 2000 Pro SP2 kullanılmıştır. Rendering: Yapılan testlerde hyper-threading etkinleştirilmemişken tek komut zinciri ile CPU kullanımı %100'de tutulmuştur. Rendering uygulamasında, çift CPU'nun sağladığı performans değerlerine ulaşılamamasına rağmen, tek CPU'ya gore azımsanmayacak bir performans artışı gözlenmiştir. Photoshop ve MP3 kodlama: WAV-MP3 çevirimi için SMP destekleyen GOGO-no-coda 2.39c codec'leri kullanılmıştır. Çift fiziksel CPU kullanımı %34 oranında performans sağlarken, hyper-threading %3'luk bir performans kaybına neden olmuştur. Photoshop 6.01 testinde ise hyper-threading ciddi bir performans kaybı verirken, çift fiziksel işlemci ile yapılan test ise bize %12'lik bir kazanç sağlıyor. CAD Uygulamaları: Çift fiziksel işlemcili sistemlerin OpenGL ve 3D uygulamalarında tek işlemcili sistemlere gore performans değerlerinin yüksek gelmesi çok nadirdir. Bu yüzden çoğu test uygulamalarında çift fiziksel işlemcili sistemler, tek işlemcili versiyonları yerine rakipleri ile karşılaştırılırlar. Bir uygulamanın iki işlemcili bir sistemde daha hızlı çalışabilmesi için; İki veya daha fazla komut zincirinin eşzamanlı işlenebilmesi Eşzamanlı olarak aynı kaynakları kullanmaması gerekmektedir. Sunucu Uygulamarında Performans? Aşağıdaki grafikte Intel mikroişlemci labaratuarlarında yapılan test sonuçlarını görebilirsiniz. Çift XEON MP işlemci ile yapılan testlerde Windows 2000 Server işletim sistemi kullanılmış. Özellikle Microsoft IIS uygulamasında %30'a varan bir performans artışı var. SQL server uygulamasında ise %22'lik bir performans kazancını sadece BIOS üzerinden hyper-threading'i aktif duruma getirmekle elde etmek gerçekten güzel. Windows Tabanlı Sunucular Hyper-Threading İşlemcileri Nasıl Tanır? Windows tabanlı sunucular işlemci bilgilerini sistem BIOS'undan alır. Sunucu üreticileri, Intel'in sağladığı teknik spesifikasyonlar ile kendi BIOS yazılımlarını üretirler ki Hyper-Threading, çoğu sunucuda BIOS üzerinden aktif veya pasif duruma getirilebilir. BIOS'un Intel tarafından sağlanan detaylar ile yazıldığını varsayarsak, BIOS önce herbir fiziksel işlemciler üzerindeki birinci mantıksal işlemcileri sayar, daha sonra da fiziksel işlemciler üzerinde ki ikinci işlemcileri sayar. Aşağıdaki grafikte Intel mikroişlemci labaratuarlarında yapılan test sonuçlarını görebilirsiniz. Çift XEON MP işlemci ile yapılan testlerde Windows 2000 Server işletim sistemi kullanılmış. Özellikle Microsoft IIS uygulamasında %30'a varan bir performans artışı var. SQL server uygulamasında ise %22'lik bir performans kazancını sadece BIOS üzerinden hyper-threading'i aktif duruma getirmekle elde etmek gerçekten güzel.