Pipelined cpu

Başlatan yamak, 31 Mart 2012, 01:06:04

yamak

Mesela 5 kademe pipeline için şöyle derler:3 komut pipeline lı işlemcide 7 cycle sürerken single cycle işlemcide bu 3*5=15 cycle sürer. Fakat single cycle da komutların işlenmesi 1 ya da 2 cycle sürer.Yani 3 komut en fazla 6 cycle da tamamlanır.Bu noktada bi karışıklık yok mu yoksa ben yanlış mı biliyorum? Aslında pipeline ın en büyük  avantajı cpu içindeki yolları kısa tutulmasını sağlayıp kapı gecikmelerini azaltmak ve böylece işlemcinin daha yüksek frekansta çalışmasını sağlamak. Böyle değil mi?

yamak

Bu konu hakkında bi fikri olan yok mu?

z

5 Satege pipelinein asamalari neler? Soruyu 3 stage pipeline uzerinde ornekle sorsan yorum yapabilirim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

yamak

Hocam aşamalar İnstruction fetch,instruction decode,execute,storing,write back.

sakkan

Hocam,

single cycle'da bir komut işlerken pipelined yapıdakinin tersine hiç bir kaynağı paralelinde kullanamazsın. bir komut mesela writeback aşamasındayken yeni bir komutu decode edemezsin. bu yüzden single cycle da cycle hızını çok uzun tutman gerekir. pipeline de cycle hızını herhangi bir stage de en uzun kalan komuta göre belirlersin ki bu da her şekilde single cycle'ın cycle süreinden kısa olur. Yani aslında kaç cycle tutuyo diye bakmaktansa 3 komutun işlendiği toplam süreye bakmak daha doğru olur karşılaştırma için.

yamak

#5
Alıntı YapYani aslında kaç cycle tutuyo diye bakmaktansa 3 komutun işlendiği toplam süreye bakmak daha doğru olur karşılaştırma için.
Tamam bu konuda haklısınız yani olay şu şekilde bence single cycle da işlemler 1 cycle da işleniyo olabilir fakat single cycle ın çalışma frekansı 1 mhz olurken pipelined ın 4 mhz olabiliyor. 3- 4 komutu işlenmesinde single cycle daha kısa sürede bitirebilir ama 10 larca omut olduğu zaman pipelined fark atıyo. Ama bir işlemcini assembly komutlarının işlenme süresinde bahsedilirken hep tek cycle da işleniyomuş gibi söyleniyo. Aslında bu pipeline kademesine göre 4-5 ya da daha fazla cycle da işleniyodur. Yanlış mı düşünüyorum?

sakkan

Aslında teoride her komut birden fazla cycleda işleniyor.  Ama pipeline full dolduğunda, komutlar arasında herhangi bir bağımlılık yoksa ve branch komutu gelmezse aslında her komut sanki bir cycleda çalışıyor gibi olur. Çünkü hepsi arka arkaya dizilmiş durumda pipeline yapısı içinde. tabi dediğim gibi bağımlılıklar ve branch işlemleri işin içine girdiğinde bu iş değişiyor. bazen pipeline ı boşaltmak durumda kalıyor işlemci. ama bahsedilirken hep en iyi durumdan bahsederler. yani her komut bir cycle da işliyor gibi. hatta ARM işlemcilerde bildiğim kadarıyla her cycle başına birden fazla komut düşüyor.

carirt

bir komudun alınıp gerçekleştirilmesi 5 karedalga çevriminde olur

branch slip bypass mdu gibi işlemler işin içine girdimi durum farklılaşır

komutlar sıraya girdimi her çevrimde bir komut çalıştırılır komudun tamamının gerçekleşmesi dediğim gibi 5 çevrimde olur

pic32 de olan mips32 m4k işlemcisi aynı anda 32 bit olarak hem komut alıp hemde veri gönderebiliyor