L1-L2-L3 cache hakkında bilgi

Başlatan sezgin05, 31 Mayıs 2004, 15:03:26

DumrulBey

Hyper-Threading Nasıl Çalışır?
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.

İşlemci cache belleğinini arttırılması işlemi 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.

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 (Foster 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.



Klasik bir simetrik çift işlemcili sistemden farklı olarak HT için fiziksel bir işlemci içinde bazı ünitelerin sayıları ikiye çıkarılarak aynı TraceCache, L1/L2 cache'leri, MicroArchitectural Registerları, ve Execution Uniterini paylaşan iki mantıksal işlemci yaratılması diyebiliriz. Burada asıl amaçlanan bir işlemcinin ham işlem gücünü birden çok görev altında maksimum verim ile kullanabilmek.

Bu iki mantıksal işlemci aynı anda farklı paralel komutları işletebilirler. Ve bu sayede günlük bilgisayar kullanımı sırasında oluşan, virus taraması yaparken aynı an da bir dokumanı PDF'e çevirmek ve belkide aynı an da MP3 file'lar dinlemek gibi senaryolarda ciddi kazançlar sağlanabilir. Ya da büyük miktardaki verilerinizi arşivlerken aynı an da vakit geçirmek amacı ile oyun oynayabilirsiniz. İşte bu tarz senaryolar düşünülerek geliştirilmiş olan HT şartlara göre gerçekten %0-40 arasında bir performans artışı sağlayabiliyor. (DumrulBey: Gördüğüm bazı performans grafiklerinde, MP3 çözme ve Photoshop ile resim işlemede (-) eksi performans göze çarpıyor!)



HT aslında her zaman kararlı davranamıyor. Eğer hemen yüksek işlemci gücü ihtiyacı olduğunu bildiğiniz Seti@Home ya da United Devices'ın kanser araştırma projelerinden birini çalıştırıp, sistemi TaskManager'dan takip ederseniz sadece bir mantıksal işlemcinin full çalıştığının ve işlemci kullanımının tam %50'de sabit kaldığını görüyorsunuz. Ancak aynı an da başka bir program ya da aynı programdan bir tane daha çalıştırdığınızda diğer mantıksal işlemcide full çalışıyor ve işlemci kullanımı %100'e ulaşıyor. Bu gibi sorunları aşmanın şimdilik bir yolu yok. Zamanla uygulama geliştiriciler Multi-Thread çalışabilen uygulamalarını HT'yi düşünerek geliştirirlerse o zaman HT'den tam manası ile faydalanılabilir.

İdeal HT performansı için bir uygulama Integer(tamsayı) ağırlıklı iken aynı an da çalışan diğer uygulamanın Floatingpoint(kayarnokta) ağırlıklı olması gerekiyor. Eğer bu ideal şart sağlanırsa HT ile %30-70 arası performans faydası sağlanabilir. Ancak aynı anda iki tamsayı ya da iki kayarnokta ağırlıklı program işletilmeye çalışırsa HT faydalı olamayacaktır.

Derlenmiş yazıdır, kaynaklar:
http://www.penta.com.tr/channels/1.asp?id=409
http://www.hardwaremania.com/reviews/pentium4HT/ht1.shtml

Alıntı yapılan: "Ekşi sözlüten exception"Tek bir işlemciyi represent etmek için yeterli olacak kadar circurity'yi kopyalayıp execution unitleri ortak kullanarak, sanal işlemciden biri herhani bir pipeline aşamasında stall olup bişeyin gerçekleşmesinin bekliyorken boş cycle'ı diğer sanal işlemcinin hizmetine sunan, böylelikle işlemcide overall olarak tüm altbirimlerin maksimum düzeyde meşgul edilmesini amaçlayan teknoloji.
Anladığım kadarıyla HT, karşılaştırılan sistemlere göre hiç bir zaman çift işlemcili bir sistem ile boy ölçüşemezken tek işlemcili bir sistemde şartlar uygunsa (donanım ve yazılım desteği ile uygun program kodu varsa) bir miktar hız artışı görülmekte. Bazen kötü sonuçlar bile alındığı da olmuş. Öğrendiğim kadarıyla Intel, HT için yaklaşık 10 senedir çalışıyormuş. Galiba daha çok çalışması gerekecek! Zira lanse edildiği gibi öyle çok şeyler vaadettiği söylenemez. Ancak boş kalan işlemci kaynaklarının değerlendirilebilmesi bence taktir edilecek bir şey...

Sevgiler, saygılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)

ahmoli

valla abi beni bu konuda çok fazla aydınlattınız ben çok sağolun  :idea:
çok kıyak çok disipilinli ve çakı gibi olamlıyız her zaman birbirimizi ve kendimizi kollamalıyız.

sezgin05

Arkadaşlar okula yeni gelen bilgisayar anakartlarını incelerken PCI slota takılmış bir kart gördüm.Dış ortamla bağlantısı olmayan bu kartın ne işe yaradığını merak ediyorum.Üzerindeki chipleri inceleme fırsatı bulamadım.Henüz çalıştırmadım da.Fakat aklıma takıldı. Sizce ne olabilir.

sezgin05

Galiba yukarıda bahsettiğim kart hakkında kimsenin bilgisi yok yada çok basit bir konu olduğu için kimse cevap yazmadı.Neyse ben araştırarak ne işe yaradığını buldum ve sizlerle paylaşmak istiyorum
Bu kartın adı HARDDISK SHERRIF, görevi açılışta harddiskin bootunu kaydediyor ve bir sonraki açılışta  kaydettiği bootu tekrar yüklüyor.Yani Deepfreeze programının yaptığı işi donanımsal olarak yapıyor. Daha çok internet cafe veya öğrenci bilgisayarlarında sistemi korumak için kullanlıyor.