Sunuyu indir
YayınlayanAyşe Esin Bucak Değiştirilmiş 8 yıl önce
1
BİLGİSAYAR MİMARİLERİ 11.Hafta: Pipeline Sorunları
Doç.Dr. Ahmet ÖZMEN Sakarya Üniversitesi Bilgisayar Mühendisliği Bölümü
2
Ders Planı Giriş Pipeline sorunları (hazards) Pipeline performans
Yapısal sorunlar, Veri bağımlılığı, Kontrol sorunu Pipeline performans
3
Pipeline mimari: Kabuller
İşlemcimiz 5 katmanlı pipeline yapıda olsun: Katmanlar: IF, ID, EX, M, WB Varsayımlar: IF, ID, EX, M, WB katmanlarındaki icra sürelerinin yaklaşık eşit olsun Hızlı bir ön-bellek, Çoklu portlu bir saklayıcı kümesi (register file), Hızlı bir ALU ile bu sağlanabilir.
4
5 katmanlı icra
5
5 katmanlı icra: Kaynakların kullanımı
6
Pipeline icra: ALU komutları
DİKKAT: IR her kademe için gerekli!
7
IR’ler ve denetim noktaları
Denetim noktaları doğru ilişkilendirmiş mi? ALU, Load/Store ve Write back dikkate alınmalı
8
Pipeline MIPS (jump’lar hariç)
9
Pipeline içindeki komutlar nasıl etkileşir?
Bir komut diğer bir komutun ihtiyaç duyduğu bir kaynağı kullanıyor olabilir. Yapısal sorun (structural hazard) Bir komut başka bir komutun ürettiği sonucu kullanmak isteyebilir. Veri bağımlılığı sorunu (data hazard) Bir komut bir sonraki icra edilecek komutu belirliyor olabilir. Kontrol sorunu (control hazard) Dallanma komutları (branch, jump gibi)
10
Yapısal sorun (structural hazard)
11
Yapısal soruna çözüm-1
12
Yapısal soruna çözüm-2 İki ayrı bellek kullanımı: IM ve DM
13
Veri bağımlılığı sorunu
Örnek program:
14
Veri bağımlılığı sorunu (devam)
Zamana bağlı bağımlılık. Geçmişe yönelik bağımlılıklar sorun oluşturuyor. Kırmızı bölgeler okuma/yazma yarı periyodunu gösteriyor
15
Veri bağımlılığı sorunu (devam)
ÇÖZÜM-1: stalls Kontrol lojiği karmaşık olabilir
16
Veri bağımlılığı sorunu (devam)
Donanım: PC değeri değiştirilmez, aynı komut tekrar tekrar çekilir ve kontrol işaretleri sıfırlanır.
17
Veri bağımlılığı sorunu (devam)
Yazılım: En kötü durumda araya yeteri kadar NOP komutu sokulur. Bu işlem derleyici tarafından yapılabilir.
18
Veri bağımlılığı sorunu (devam)
İletme (forwarding): Pipeline saklayıcıları zaten veriyi barındırıyor.
19
Forwarding (Bypassing) donanımı
20
Veri bağımlılığı sorunu
Forwarding sonrası gecikme 1 stall’a iniyor.
21
Veri bağımlılığı sorunu
İç-kilit (interlock) sorunu tespit eder ve pipeline’ı 1 saat periyodu boş tutar (stall) .
22
Veri bağımlılığı sorunu
Veya yazılımla (derleyici marifetiyle) araya NOP konur .
23
Kontrol sorunu (control hazards)
Dallanma koşulu belirleninceye kadar stall.
24
Kontrol sorunu (control hazards)
3 stall’ın 1’e indirilmesi için donanımsal değişiklik. -----ESKİ DURUM---
25
Kontrol sorunu (control hazards)
3 stall’ın 1’e indirilmesi için donanımsal değişiklik. -----YENİ DURUM---
26
Kontrol sorunu (control hazards)
Tüm donanımsal iyileştirmeden sonra dallanmada 1 stall kaçınılmaz.
27
Kontrol sorunu (control hazards)
Herhangi bir düzenleme yapılmazsa dallanma komutları 3 stall gecikme oluşturur. CPI = 1 ise, %30 dallanma komutları varsa, stall 3 çevrim ise => yeni CPI = 1.9 Dallanmanın alınıp alınmayacağı erken belirlenirse (donanımsal düzenleme): Karşılaştırma işlemini 2. katmana taşı, Hedef adresi hesabı için bir toplayıcı (ALU) ilave et Stall sayısı 1’ düşer. Yazılımsal çözümlerle kayıplar daha da azaltılabilir: Dalanma gecikme slotu: Derleyici bu gecikme slotunu doldurabilir Diğer bir yaklaşım ise dallanma tahmini (branch prediction)
28
Pipeline için zor durumlar
Kesmeler: 5 komut icra halinde iken kesme olursa? Çözüm: 1) Kesme komutu çekilir, 2) Yeniden başla (restart) ve ne yapıldıysa incomplete yap. Reel sayı işlemleri, tamsayı işlemleri gibi yapılamaz. Çözüm farklı işlevsel üniteler. Katman Kesme sebebi IF Page fault, missaligned memory access, memory protection violation ID/RF Tanımlanamayan veya illegal opcode EX Aritmetik kesme M
29
Pipeline performans Hızlanma, pipeline derinliği dikkate alındığında CPI = 1 ise: Pipeline derinliğini arttırmak hazard’ların etkisini arttırır Derleyiciler önem kazanıyor: Kesmeler, karmaşık komutlar ve FP pipeline kullanımını zorlaştırıyor
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.