1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7
2 Giriş Multicore bilgisayarlar birden fazla işlemciyi (core) birleştirir. Her bir core bir mikroişlemcinin saghip olduğu tüm bileşenlere sahiptir. Her core içerisinde, ALU, register lar, pipeline donanımı, kontrol birimi, L1 komut cache ve L1 data cache bulunur. Bunun yanısıra, günümüz multicore işlemciler L2 ve L3 cache belleklere de sahiptir. Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7
3 Donanım performans kriterleri Mikroişlemci tasarımındaki organizasyonel geliştirmeler temel olarak instruction-level parallellism i artırmaya yöneliktir. Her clock cycle da olabildiği kadar çok sayıda komut çalıştırılmaya çalışılır. Instruction-level paralellism e yönelik ilk geliştirme superscalar mimaridir. Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7
4 Eş zamanlı çalışma Superscalar mimaride, birden fazla pipeline ile execution kaynakları artırılır. Eş zamanlı çalışma Simultaneous multithreading mimarisinde, çok sayıda PC ve çok sayıda register bulunur. Böylelikle birden fazla process arasında geçiş yapılarak programlar çalıştırılır.
5 Eş zamanlı çalışma Instruction-level paralellism e yönelik diğer bir geliştirme simultaneous multithreading mimarisidir. Simultaneous multithreading mimarisinde, çok sayıda PC ve çok sayıda register bulunur. Eş zamanlı çalışma Mikroişlemcielrde perforansı artırmak için yapılan her yenilik karmaşıklığı artırmıştır. Superscalar mimaride birden fazla pipeline ile performans artırılır. Pipeline sayısı arıtırlırken ortaya çıkacak sorunların gideirlmesi için daha çok mantık devresine ihtiyaç duyulur. Bir thread ile çok sayıdaki pipeline üzerindeki çalışmada kaynak bağımlığı veya veri bağımlığı gibi diğer sorunlardan dolayı pipeline mimarisinden alınacak performans sınırlanır. Simultaneous multithreading mimarisinde birden çok thread in çalıştırılması daha karmaşık hale gelmektedir.
6 Eş zamanlı çalışma Grafikte Intel mikroişlemcilerin yıllara göre performans artışı görülmektedir (SPEC CPU da yayınlanmıştır). Eş zamanlı çalışma Grafikte Intel in yayınladığı SPEC CPU değerleri ile clock frekanslarının birleşimi hesaplanan değerin yıllara göre değişimi görülmektedir. Pipelining, superscalar teknikler ve SMT geliştirilmiştir. Instruction level parallelism geliştirilmemişti. Instruction level parallelism limite ulaşılmıştır
7 Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7 Güç tüketimi Mikroişlemci içersindeki transistör sayısı arttıkça, pipelining, superscalar ve SMT tasarımları geliştirildikçe ve clock frekans artırıldıkça güç gereksinimi artmaktadır.
8 Güç tüketimi Mikroişlemci içerisindeki yoğunluk arttıkça ve clock frekans arttıkça güç gereksinimi artmaktadır. Hafızada birim alanda harcanan güç mantık edvrelerinde harcanandan daha fazladır. Mikroişlemcideki cache bellek alanı artırılmaya başlanmıştır. Güç tüketimi 2015 yılında 3cm 2 işlemci alanında yaklaşık 100 milyar transistör olması bekleniyor. Cache belleğinin 100 MB olması, mikroişlemci alanının %50 sini kaplaması ve önbellekte 1 milyar transistör olması bekleniyor.
9 Güç tüketimi Bir mikroişlemcinin karmaşıklığı arttıkça performans karekök oranında artar (Pollack s rule). İşlemci core kısmında mantık devreyi iki katına çıkardığımızda performans %40 oranında artar ( 2 = 1,41). Çoklu core kullanarak core sayısı arttıkça yaklaşık olarak lineer performans artışını sağlanmaktadır. Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7
10 Yazılım performans kriterleri Multicore organizasyonun performansı çoklu kaynakların çalışmakta olan uygulama tarafından etkin kullanımını artırmakla orantılıdır. Amdahl ın kuralına göre hızlanma faktörü aşağıdaki gibidir: Burada, (1 - f) seri çalıştırılması zorunlu olan program parçasını, f ise paralel çalıştırılabilen program parçasını göstermektedir. Yazılım performans kriterleri Multicore bir mikroişlemcide 8 core bulunmaktadır. Bir programın %10 u seri çalışırsa, speedup factor 4,70 olur. speedup (1 1 (0,1) 4,70 1 f ) 0,9 8 f N
11 Yazılım performans kriterleri Bir programda seri çalışn kısım oranı arttıkça hızlanma faktörü azalır. Yazılım performans kriterleri Multicore işlemcilerde işlerin dağıtılması, cache coherence sağlanması ve iletişim için overhead oluşur*. *McDougall, R. Extreme Software Scaling. ACM Queue, September 2005.
12 Yazılım performans kriterleri Veritabanı uygulamaları, işletim sistemleri ve middleware yazılımlarda speedup faktörü yüksektir*. *McDougall, R. Extreme Software Scaling. ACM Queue, September 2005. Yazılım performans kriterleri Multicore işlemcilerle aşağıdaki uygulama türlerinde de performans artışı sağlanmaktadır*. Multithreaded native applications: Lotus Domino ve Siebel CRM (Customer Relationship Manager) yazılımları. Multiprocess applications: Oracle veritabanı, SAP, Peoplesoft. Java applications: Java Virtual Machine, Sun Java application server, BEA s Weblogic, IBM Websphere, Tomcat application server, J2EE (Java 2 Platform, Enterprise Edition) kullanan uygulamalar. Multiinstance applications: Bir uygulamanın birden fazla örneği paralel çalıştırılarak performans artırılabilir. Sanallaştırma teknolojisi ile ayrı ve güvenilir ortam oluşturulabilir. *McDougall, R., Laudon, J. Multi-Core Microprocessors are Here. ;login, October, 2006.
13 Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7 Multicore organizasyonu Multicore organizasyondaki temel değişkenler: Chip içerisinde core işlemci sayısı Cache bellek seviye sayısı Paylaşılan cache bellek miktarı
14 Multicore organizasyonu Multicore organizasyondaki temel değişkenler: Chip içerisinde core işlemci sayısı Cache bellek seviye sayısı Paylaşılan cache bellek miktarı Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7
15 Intel Core Duo Intel Core Duo 2006 yılında geliştirildi. İki tane x86 superscalar işlemciye sahiptir. İşlemciler kendi L1 cache belleklerine sahiptir. 32 kb instruction ve 32 kb data L1 cache bellek İşlemciler tarafından paylaşılan L2 cache belleğe sahiptir. Thermal kontrol birimi eşik ısı değeri aşıldığında clock frekansını düşürerek ısı artışını engeller. Intel Core Duo Advanced Programmable Interrupt Controller (APIC) İşlemciler arasında interrupt gönderimini sağlar. Bir işlemci diğerlerine interrupt gönderebilir. I/O cihazlarından gelen interrupt ları doğru core a iletir. Her APIC timer a sahiptir ve OS tarafından set edilerek kendi core ları için interrupt üretir. Power Management Logic: Özellikle mobil cihazlar için güç tüketimini minimuma indirmeye çalışır. Isı durumunu, CPU aktivitesini izler ve gerilim seviyesi ile güç tüketimini ayarlar. Core Duo paylaşılmış 2MB cache belleğe sahiptir. L2 cache bellek ile L1 cache bellek tutarlığı için MESI (Modified Exclusive Shared Invalid ) protokolü kullanır. Bus interface: Main memory, I/O controller lar ve diğer işlemcilerin bağlantısını sağlayan External bus a (Front Side Bus) bağlıdır.
16 Konular Giriş Donanım performans kriterleri Eş zamanlı çalışma Güç tüketimi Yazılım performans kriterleri Multicore organizasyonu Intel Core Duo Intel Core i7 Intel Core i7 Intel Core i7 2008 yılında geliştirilmiştir. Dört tane x86 SMT işlemciye sahiptir. - DDR3 memory controller, 3 tane 8 byte (192 bit) kanala sahiptir. - 32 GB/s data rate - QPI cache-coherent için işlemciler arasında yüksek hızlı iletişim yapar - 6,4 GT/s - Transfer per second - Her transferde 16 bit aktarılır (12,8 GB/s).
17 Intel Core i7 İşlemciler kendi L1 (32kB) ve L2 (256kB) cache belleklerine sahiptir. Her core 32 kb instruction ve 32 kb data L1 split cache belleğe sahiptir. Tüm core lar tarafından paylaşılan L3 (8MB) cache belleğe sahiptir. Intel, cache belleği daha etkin kullanmak üzere speculative fill yapan mekanizmayı kullanmıştır. İşlemcilerin hafıza erişim karakteristiğine göre yakın zamanda kullanılacakları tahmin ederek prefetch yapılır. Intel Core i7 Core 2 Quad işlemci de Core Duo işlemci gibi paylaşılmış L2 cache bellek kullanır. Core i7 işlemci ise her core için dedicated L2 cache kullanmaktadır. Her iki mikroişlemci için cache bellek erişim gecikmeleri clock cycle olarak aşağıda verilmiştir.