Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
NİŞANTAŞI ÜNİVERSİTESİ
BİLGİSAYAR MİMARİSİ 11.HAFTA NİŞANTAŞI ÜNİVERSİTESİ © Mühendislik Mimarlık Fakültesi mmf.nisantasi.edu.tr
2
NİŞANTAŞI ÜNİVERSİTESİ ©
Örnek Bir programın yürütülmesi, 400 Mhz clock frekansına sahip olan A makinasında 10 sn. sürmektedir. Donanım tasarımcısı aynı programı 6 sn.’de çalıştıracak olan B makinası tasarlamaktadır. Fakat tasarımcıya göre clock frekansının arttırılması B makinasının A’ya göre 1,2 kat daha fazla clok cycle’ına ihtiyaç duymasına neden olmaktadır. Buna göre tasarımcı hangi clock frekansında B makinasını tasarlamalıdır? NİŞANTAŞI ÜNİVERSİTESİ ©
3
NİŞANTAŞI ÜNİVERSİTESİ ©
Örnek A makinası için gerekli olan clock cycle’ı sayısı; CPU Clock Cycles for a ProgramA 10 sn.= cycle/sn CPU Clock Cycles for a ProgramA = cycles CPU Clock Cycles for a ProgramB = 1,2 X cycle = cycles cycles Clock rateB = Hz. = 800 Mhz 6 sn = Clock rateB NİŞANTAŞI ÜNİVERSİTESİ ©
4
Performans Metrikleri
CPU bellekteki komutları durumda execution time, (instruction) programda teker teker yürütür. Bu bağlı olan instructionların sayısına ve her bir instruction için gerekli olan ortalama zamana bağlıdır. CPU Clock Cycles for a = Instructions for a program Average Clock Cycles Per Instruction (CPI) X Program Not: Her bir instruction için gerekli ortalama zaman edilebileceği gibi clok cycle’ları cinsinden de ifade edilebilir. sn. ifade NİŞANTAŞI ÜNİVERSİTESİ ©
5
NİŞANTAŞI ÜNİVERSİTESİ ©
Örnek Aynı mimariye sahip A ve B makinaları bulunmaktadır. A makinasının 1 cycle’ı 1 ns., ve her bir instruction başına düşen ortalama saykıl sayısı 2.0’dır. Aynı program için, B makinasının 1 cycle’ı 2 ns., her bir instruction başına düşen saykıl sayısı 1.2’dir. Bu durumda Hangi makina hızlıdır? Ne kadar? NİŞANTAŞI ÜNİVERSİTESİ ©
6
NİŞANTAŞI ÜNİVERSİTESİ ©
Örnek Öncelikle her iki makinada aynı komut setini ve aynı programı kullandıklarından dolayı işlemiş oldukları instruction sayısı aynıdır. İşlenen instruction sayısı = I olsun CPU execution time for a = I x 2 x 1 ns. = 2 I ns. kadar sürer ProgramA CPU execution time for a ProgramB = I x 1,2 x 2 ns. = 2,4 I ns. kadar sürer 2,4 I ns. PerformanceA Execution timeB =1,2 = = Performance Execution time 2 I ns. B A A makinası, B’den 1,2 kat daha performanslıdır. NİŞANTAŞI ÜNİVERSİTESİ ©
7
NİŞANTAŞI ÜNİVERSİTESİ ©
Performans Bileşenleri Açıklama Cpu execution time for a program Bir programın işletilmesi için gerekli olan süre Instruction Count Programda yürütülen instruction sayısı CPI (Clock Cycles Per Insructions) Her bir instruction için gereken ortalama clock sayısı Clock Cycle Time Her bir clock cycle’ı için gerekli olan süre 20 NİŞANTAŞI ÜNİVERSİTESİ ©
8
Temel Performans Eşitliği
CPU execution time = Instruction Count X CPI X Clock Cycle Time Instruction Count X CPI CPU execution time = Clock Rate Instruction Program Cycles Instruction Seconds Time = X X Cycles NİŞANTAŞI ÜNİVERSİTESİ ©
9
Clock Cycles Per Instruction (CPI)
Program içerisinde kullanılan her bir komut sınıfı içinde yer alan komutlar için gerekli olan süreler farklılık gösterir. Bu nedenle, bir programın işletilmesi için gerekli olan toplam cycle sayısı: CPU Clock Cycles = n (CPIxC) i i i1 Ci Yürütülen i sınıfı içinde yer alan bir instruction’ın tekrar sayısıdır. CPi Yürütülen i sınıfı içindeki bir instruction için gerekli olan clock cycle’ı sayısıdır. NİŞANTAŞI ÜNİVERSİTESİ ©
10
NİŞANTAŞI ÜNİVERSİTESİ ©
Örn: Bir compiler tasarımcısı bir makina için, iki kod seçecektir. Donanım üreticisi aşağıdaki bilgileri vermiştir : serisinden biri ni Instruction Class Her bir komut sınıf için gerekli olan CPI değerleri A 1 B 2 C 3 Tasarımcının uygulamayı düşündüğü kod serileri ise ; Kod Serisi Instruction Counts for Instruction Class A B C 1 2 4 Bu durumda: Hangi kod serisi daha çok instruction işler ? Hangisi daha hızlıdır? Her bir kod serisi için gerekli olan CPI nedir? NİŞANTAŞI ÜNİVERSİTESİ ©
11
(CPIxC) CPU Clock Cycles =
Birinci seri = 5 instruction yürütür. İkinci seri 4+1+1= 6 instruction yürütür. Bir serinin yürütülmesi için gerekli olan CPU cycle sayısı instructionın tekrar sayısına ve bu instruction için gerekli olan CPI ‘ya bağlıdır. Yani; CPU Clock Cycles = n (CPIxC) i i i1 Kod Serisi 1 = (1x2) + (2x1) + (3x2) = 10 cycle gerekmektedir. Kod Serisi 2 = (1x4) + (2x1) + (3x1) = 9 cycle gerekmektedir. Kod Serisi 2, daha fazla instruction işletmesine rağmen, daha az clock cycle’ı gerektirdiğinden daha kısa sürer. Daha hızlıdır. Kod Serisi 2, daha fazla instruction’ı daha az clock cycle’ı ile işlediğinden CPI değeri de daha düşük olması beklenir. NİŞANTAŞI ÜNİVERSİTESİ ©
12
NİŞANTAŞI ÜNİVERSİTESİ ©
c) Kod Serisi 2, daha fazla instruction’ı daha az clock cycle’ı ile işlediğinden CPI değeri de daha düşük olması beklenir. CPU Clock Cycles CPI = Instruction Count 10 = 2 CPISeri1 = 5 9 = 1,5 CPISeri2 = 6 Görülmektedir ki, performansların karşılaştırılmasında sadece tek bir öğeye bakmak yanıltıcı olabilir. NİŞANTAŞI ÜNİVERSİTESİ ©
13
Performans Ölçümü İçin Programlar
Her gün aynı işi yapan bir kullanıcının yeni bir makinanın performasını değerlendirmesi kolaydır. Fakat, her kullanıcı bu imkana sahip değildir. Bunun için benchmark programları kullanılır. En iyi benchmarklar, gerçek uygulamalardır. (Örn: bilimadamı için bilimsel uygulamalar içeren bir benchmark gibi) Benchmark teslerinde kullanılan tüm bilgiler açıkça verilir (Donanım özellikleri, yazılımda kullanılan derleyici, işletim sistemi vd.) NİŞANTAŞI ÜNİVERSİTESİ ©
14
Performansların Karşılaştırılması ve Özetlenmesi
Benchmark olarak kullanacağımız programı seçtikten sonra response time ve throughput için performans karşılaştırması yapabiliriz. Fakat, bir grup benchmark sonucu sözkonusu ise performansı genel olarak nasıl özetleyebiliriz? Computer A Computer B Program 1 (saniye) 1 10 Program 2 (saniye) 1000 100 Toplam (Saniye) 1001 110 Program1 için A makinası B’den 10 kat hızlıdır. Program2 için B makinası A’dan 10 kat hızlıdır. NİŞANTAŞI ÜNİVERSİTESİ ©
15
NİŞANTAŞI ÜNİVERSİTESİ ©
Computer A Computer B Program 1 (saniye) 1 10 Program 2 (saniye) 1000 100 Toplam (Saniye) 1001 110 i) Her iki makinanın da göreli olarak performansını özetlemek için toplam yürütme zamanını (total execution time) kullanmak daha güvenilirdir. 1001. PerformanceB Execution timeA = = =9,1 Performance Execution time 110 A B B makinası 1 ve 2 numaralı programlar için A’dan 9,1 kat daha hızlıdır. NİŞANTAŞI ÜNİVERSİTESİ ©
16
NİŞANTAŞI ÜNİVERSİTESİ ©
ii) Toplam yürütme zamanı kullanılabileceği gibi programların yürütme zamanlarının aritmetik ortalması da kullanılabilir. n 1 Time Aritmatik Ortalama = n i1 i i. Programın execution time süresi Timei Fakat bir makine üzerinde işlem gören programların eşit sayılarda yürütüldüğünde bu hesaplamalar geçerlidir. Aksi taktirde hesaplamalara bu programların ağırlıkları da eklenmelidir. (Örn: İş yükünün %30’u Program1’den, %70’i Program2’den kaynaklanmaktadır) NİŞANTAŞI ÜNİVERSİTESİ ©
17
SPEC (System Performance Evaluation Corporation)
CPU performansını, gerçekçi olarak ölçümlenmesi ve raporlamasını sağlamak için 1989 yılında bir grup bilgisayar firmalasının bir araya gelmesiyle oluşturulan bir kurumdur. ( Tarihsel olarak bakıldığında SPEC benchmarkları; SPEC CPU89 SPEC CPU92 SPEC CPU95 SPEC CPU2000 SPEC CPU2006 30 NİŞANTAŞI ÜNİVERSİTESİ ©
18
(Integer component of SPEC CPU2000)
CINT2000 (Integer component of SPEC CPU2000) Program Language What It Is 164.gzip C Compression 175.vpr FPGA Circuit Placement and Routing 176.gcc C Programming Language Compiler 181.mcf Combinatorial Optimization 186.crafty Game Playing: Chess 197.parser Word Processing 252.eon C++ Computer Visualization 253.perlbmk PERL Programming Language 254.gap Group Theory, Interpreter 255.vortex Object-oriented Database 256.bzip2 300.twolf Place and Route Simulator NİŞANTAŞI ÜNİVERSİTESİ ©
19
(Float component of SPEC CPU2000)
CFP2000 (Float component of SPEC CPU2000) Program Language Açıklama 168.wupwise Fortran 77 Physics / Quantum Chromodynamics 171.swim Shallow Water Modeling 172.mgrid Multi-grid Solver: 3D Potential Field 173.applu Parabolic / Elliptic Differential Equations 177.mesa C 3-D Graphics Library 178.galgel Fortran 90 Computational Fluid Dynamics 179.art Image Recognition / Neural Networks 183.equake Seismic Wave Propagation Simulation 187.facerec Image Processing: Face Recognition 188.ammp Computational Chemistry 189.lucas Number Theory / Primality Testing 191.fma3d Finite-element Crash Simulation 200.Sixtrack High Energy Physics Accelerator Design 301.apsi Meteorology: Pollutant Distribution NİŞANTAŞI ÜNİVERSİTESİ ©
20
NİŞANTAŞI ÜNİVERSİTESİ ©
Amdahl’ın Kanunu Yapılan bir hızlanma; performans iyileştirmesi(improvement) sonucu elde edilen Execution Timeimp olmadan Perfomansimp olduktan sonra Hızlanmaimp= = Execution Timeimp olduktan sonra Perfomansimp olmadan Eğer geliştirme bir programın yalnızca P parçasını T kadar hızlandırıyorsa ve kalan parçasına etki etmiyorsa bu şu şekilde ifade edilir: ( (1-P) + P / T ) x Execution Time imp olmadan Execution Timeimp olduktan sonra = Etkilenen kısmın yürütme Etkilenmeyen kısmın zamanı + yürütme zamanı Geliştirme miktarı Geliştirilmenin ardından = yürütme zamanı NİŞANTAŞI ÜNİVERSİTESİ ©
21
NİŞANTAŞI ÜNİVERSİTESİ ©
Örnek Bir program bilgisyar üzerinde 100 sn. çalışmaktadır. Bu zamanın 80 sn.’sini çarpma işlemi için harcamaktadır. Tüm programı 5 kat hızlandırmak için çarpma işlemini ne kadar hızlandırmam gerekir ? Etkilenen kısmın yürütme zamanı Etkilenmeyen kısmın yürütme zamanı Geliştirilmenin ardından = + yürütme zamanı Geliştirme miktarı Çarpma işlemini, ne hızlandırırsak 80 kadar 20 = + 20 n 80 hızlandıralım belli bir değerin altına düşmek mümkün değildir. 0 = n NİŞANTAŞI ÜNİVERSİTESİ ©
22
NİŞANTAŞI ÜNİVERSİTESİ ©
kaynaklar NİŞANTAŞI ÜNİVERSİTESİ ©
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.