BİLGİSAYAR MİMARİLERİ 10.Hafta: Pipeline İşlemci Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü
Ders Planı Giriş Pipeline işlemci temeli Tek-çevrim ve çoklu çevrim işlemci ile olan farklar Pipeline mimaride komutların icrası Pipeline işlemci performansı Pipeline mimari detayları
Giriş: Pipeline örneği Çamaşır yıkama örneği: Ann, Brian, Cathy ve Dave herbirinin yıkanması, kurutulması ve ütülenmesi gereken bir ölçü çamaşırları olsun Yıkama 30 dk tutsun, Kurulama 30 dk tutsun, Ütüleme 30 dk tutsun, Herşeyi yerine yerleştirme de 30 dk tutsun.
Sıralı işlem GÖREVLER Sıralı çamaşır yıkama işlemi 4 iş yükü için 8 saat sürüyor Pipeline bilinseydi acaba nasıl olurdu?
Pipeline çamaşır yıkama işlemi GÖREVLER Pipeline çamaşır yıkama işlemi 4 iş yükü için 3,5 saat sürüyor
Pipeline Pipeline bir işin süresini değiştirmiyor, toplamda yapılan iş miktarını (throughput) arttırıyor Çok sayıda iş farklı kısımlarda aynı anda yapılıyor Potansiyel hızlanma = katman sayısı En yavaş katman genel hızı belirliyor Dengelenmemiş katman hızları hızlanmayı düşürür Başlangıç ve bitiş anları hızlanmayı düşürür Bağımlılık durumunda boş geçişler olur (stalls)
Load komutunun 5 aşaması Ifetch: Komut belleğinden komut çekmek Reg/Dec: Saklayıcı belirleme ve komutun çözümlenmesi Exec: Bellek adresi hesabı Mem: Veri belleğinden verinin okunması Wr: Verinin saklayıcı kümesine geri yazılması
Komut icrasında pipeline İdeal hızlanma = katman sayısı, yukarıda bu başarılabiliyor mu?
Temel fikir Data path’i katmanlara ayırmak için nelere ihtiyacımız var?
Pipeline icranın grafiksel gösterimi Grafiksel gösterimin faydaları: Bir kodun kaç çevrimde icra edilebileceğini gösterir. Herhangi bir çevrimde kim ne yapıyor bakarak görülebilir: Örnek: ALU 4. çevrimde ne yapıyor? Data path’i anlamak için bu gösterilim kullanılıyor.
Pipeline icranın klasik gösterilimi
Tekli-çevrim çoklu-çevrim ve pipeline
Neden pipeline? (Pipeline Performans) Düşünün ki 100 komut icra edilecek: Tekli-çevrim makinede. 45 ns/çevrim x 1 CPI x 100 komut = 4500 ns Çoklu-çevrim makinede, 10 ns/çevrim x 4.6 CPI (inst mix nedeniyle) x 100 inst = 4600 ns Pipeline makindede: 10 ns/çevrim x (1 CPI x 100 inst + 4 çevrim bitiş) = 1040 ns
Neden pipeline? Çünkü kaynaklar orada!
Pipeline mimari detayları