İşlemcilerde PİPELİNE

'Black-King

Yaşayan Forum Efsanesi
30 Tem 2012
10,353
340
İstanbul
Arkadaslar islemcilerin performanslarini etkileyen faktorler vardir.Forumlarimizda ne zaman presscott tan bahsedilse northwood dan (uzun pipeline) sebebiyle yavas oldugundan bahsedilir.Peki nedir bu pipeline(Turkcesi ishatti)dedikleri olay.Bir bakalim genel kultur sahibi olalim

Efendim islemcilerin bir komutu isleyebilmeleri icin islemcini yapmasi gereken dort evre vardir.Bu evreler sirasiyla

Fetching:Bellekteki verinin yerinin bulunmasi ve verini istenmesidir.
Decoding.Program tarafidan verilen komutlari islemcinin anlayacagi dile cevrilmesidir.buna komut cevrimi de denir.
Executing:Alinan verinin uzerinde gerekli islemlerin yapilmasi.Komut isleme diyoruz
Store:Islemin sonuclandirilmasi ve bellege kaydedilmesidir.

Efendim islemcinin kabaca ne yaptigini ogrendkten sonra pipeline ne ise yaradigini anlatmaya baslayalim.simdi pipeline sahibi olmayan bir islemcimiz olsun.bu islemcimizin saat frekansi da 1 hz olsun.Bu islemcimiz yukarida bulunan 4 islemi de 1 hz de yapiyor olsun.soru 1 bu islemciyi nasil hizlandiririz.hemen akliniza gelen yontem daha iyi uretim teknolojileri kullanarak cekirdegi kucultmektir.bunu biliyoruz peki ya baska ne yapabiliriz.ornegin bu islemcide ki islemleri 2 ye bolsek ilk kademede fetching ve decoding i yapsak.sonraki kademede de executing ve storing i yapsak islemcimizin saat hizi artmaz mi?Artar evet simdi 2 hz lik bir islemcimiz oldu degil mi?Gordugunuz gibi 2 hz lik bir islemcimiz oldu fakat orjinal islemcimizle ayni performansta.Diyelim ki islemcimizi 4 hz te calitirmak istiyoruz.yapilan islemi tekrar 2 ye bolsek nasil olur.boylece 1 kademede Fetching, 2. kademede decoding, 3. kademede executing ve 4. kademede storing yapmis olur.Goruldugu uzere 4 hz lik bir islemcimiz var.peki 1 hz lik 2hz lik ve 4 hzlik bu islemilerin performansi arasinda bir fark var midir?yoktur.peki neden pipeline kullaniliyor bir fark yoksa?

Arkadaslar aslinda pipeline mekanizmasini bulanlar intel , amd veya herhangi bir teknoloji sirketi degil.Bildiginiz Ford.Fakat Henry Ford bu islemi islemciler icin gelistirmedi tabi.Bildiginiz gibi eskiden otomobiller el yapimi idiler ve pek tabi bu fiyatlara yansiyodu.1 otomobil yaklasik 1 gunde yapldigi icin uretim ve tuketim sinirli idi.henry Ford bunu gorup uretim bantlarini gelistirdi.Her isci otomobilin kucuk bir parcasini yerine takiyordu boylece isler daha hizli yuruyordu.Soz gelimi fabrikadaki ishattinin basindaki isci karburatoru yerine takiyor olsun bandin bir sonraki sirasindaki isci de emme manifoldunu takiyor olsun.simdi 1. isci isini bitirdikten sonra otomobil bitene kadar yatmiyor herhalde siradaki otomobile karburator takmakla ugrasiyor.Boylece verimlilik artmis oluyor.


Islemcilerdeki pipeline in da sirri bu 1 hz lik ve 4 hz lik islemcilerimiz bir isi ayni surede yapiyor.Fakat 4 hz lik islemcimiz daha 1. islemi birtirmeden 2. isleme baslamis oluyor.yani islem Executing asamasindayken 2 islem decoding asamsinda 3 islem ise Fetching de oluyor.bilmem anlatabildim mi?Bu islemcimiz de 10 saniyede kac komut islenir peki 37 komutu boylece isleyebiliriz.40 olmasi gerekiyor diyenler yanildilar .Cunku ilk islemde 3 saat darbesi bosa gidiyor.cunku islemcimizin Fetching unitesi isini yapaken diger uniteler isin bitirilmesini bekliyor.Sonuc olarak 4 hzlik islemcimiz 1 hz lik islemcimizden daha verimli.Ve reklam acisindan daha sansli sonucta 4 kat daha yuksek frekansi var

Peki madem pipelinelar verimliligi arttiriyor.o zaman yapalim 200-300 pipeline li islemciler performansi ucuralim diyorsunuz.(Netekim ben dedim)pipeline kademesi arttikca islemci maliyetleri buyuyor ve zate komplex olan yapi iyicene karisiyor.Pahali islemci almak istemiyoruz degil mi gencler?Bir husus daha var tabi x86 komutlarinin bir kismi nin calisma esasina gore bir islemin yapilabilmesi isin diger islemin sonucuna ihtiyac var.Soyle orneklersek

asama 1:x=y+z deki x degerini belirle
asama2:Eger x degeri 6 ve 6 dan buyukse 3 le carp t=3x
asama 3 :Eger x degeri 6 dan kucukse 2 ile carp p=2x

gordugunuz gibi islemimiz dallara ayriliyor.Bu durumda fetching unitesi bosu bosuna saat darbeleri haciyor.Bu seferde pipeline imiz bir ise yaramiyor.Bunu engellemek icin dallanma tahmin tablolari kullaniliyor ki bu tahminlerin dogru cikma olasiligi %90-%93 arasinda.Peki yinede islemcimiz yanlis bir tahmin yapmis olsun.sozgelimi bir p4 northwood.bu islemci ilk asamada yanlis tahmin yaparasa 20 kademeli ishattina sahip oldugu icin tam 19 saat cevrimi bosa gitmis olacak.Ayni durumu presscott ta dusunursek tam 30 cevrim bosa gitmis oluyor.Athlon da ise sadece 9 cevrim.Aslinda islemci performansina etki eden bir ton sebep olmasina ragmen athlonun ayni saat hizinda daha hizli olmasinin nedenleinden biri de budur sevgili arkadaslar.Peki arkadaslar 200 kademeli bir pipeline kullanirsak durum ne olacak tam 199 dongu bosa gitmis olacak ki bunu istedigimizi sanmiyorum


Simdi bazi islemcilerin kac kademeli ishatlarina sahip oldugunu yaziyorum:

Pentium 3 :pentium 3 ler 10 kademeli ishatlarina sahipler
athlon:Athlon Thunderbird, pluto,thoroughbred,barton hepsi 10 kademeli ishatti sahibiler
Athlon64 :12 kademeli ishtatti
Pentium4 williamette,northwood 20 kademeli ishattina sahipler
Presscott ise 31 kademeli ishattina sahip
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.