Professional Documents
Culture Documents
BM 02
BM 02
tr
2 İş Hattı (Pipeline)
İş hattında (pipeline) birden fazla iş (örneğin komutlar) paralel olarak aynı anda
yürütülürler.
Bir iş hattının verimli olarak çalışabilmesi için
1. Farklı veriler üzerinde defalarca tekrarlanan işler (task) olması gerekir,
2. İşler paralel yürütülebilen küçük alt işlere bölünebilmeli.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.1
www.buzluca.info
Bilgisayar Mimarisi
Adım = 1 Oto 1
İstasyon 1 İstasyon 2 İstasyon 3
Adım = 3'ten sonra her adımda yeni bir Oto (İş) tamamlanır.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.2
www.buzluca.info
1
Bilgisayar Mimarisi
veri sonuç
İşlem İşlem .... İşlem
R1 R2 Rk
Birimi 1 Birimi 2 Birimi k
saat
1. Segman (katman) 2. Segman k. Segman
(Segment, stage, layer)
Bilgisayar Mimarisi
Toplama 3. Katman
Toplama
R5
Sonuç
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.4
www.buzluca.info
2
Bilgisayar Mimarisi
Not: Verinin önceden hazır olduğu veya bellek okuma süresinin diğer işlemlere göre
çok kısa olduğu sistemlerde bellekten okuma ayrı bir alt işlem olarak ele alınmaz.
Bu durumda sadece aritmetik işlemi yapan iş hattı 3 yerine 2 katmanlı olarak
tasarlanabilirdi.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.5
www.buzluca.info
Bilgisayar Mimarisi
2 T1 T2 T3 T4 T5 T6
3 T1 T2 T3 T4 T5
4 T1 T2 T3 T4
1nci iş (T1) 4 saat çevrimi (segman k.’dan sonraki her saat çevriminde
sayısı k=4) sonunda tamamlandı. yeni bir iş tamamlanır.
3
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
tamamlanır.
T3 S1 S2 S3 S4
T4 S1 S2 S3 S4
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.7
www.buzluca.info
Bilgisayar Mimarisi
tp = max(τi) + dr = τM + dr
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.8
www.buzluca.info
4
Bilgisayar Mimarisi
Hızlanma (Speedup):
k: İş hattındaki segman sayısı
tp: saat periyodu (En yavaş birime göre ayarlanır.)
n: İş sayısı (işin tekrar sayısı)
1nci işin (T1) tamamlanması için k adet saat darbesi gereklidir.
Buna göre 1nci işin tamamlanma süresi: T(1) = k·tp
Kalan n-1 işin tamamlanması içi (n-1) çevrim gereklidir. Süre: (n-1)tp
Tüm işlerin (n adet) toplam süresi: (k+n-1)tp
tn :İş hattı kullanılmasaydı bir işin süresi
İş hattı olmadan gereken süre n ⋅ tn
Hızlanma (Speedup): S = S=
İş hattı ile gerekli olan süre (k + n − 1) ⋅ t p
İş sayısı çok artarsa: n→∞
tn
S =
lim
n→∞
tp
Eğer tn= k·tp varsayımı yapılırsa
(ana işi k adet eşit süreli küçük alt işleme bölmek mümkünse):
Smax = k (Teorik maksimum hızlanma)
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.9
www.buzluca.info
Bilgisayar Mimarisi
5
Bilgisayar Mimarisi
Bilgisayar Mimarisi
Sonuç:
İş hattının hızlanma sağlayabilmesi için ana işi kısa süreli ve dengeli alt işlere
bölmek gerekir.
Önemli olan saat çevriminin (tp) süresini düşürebilmektir.
Örneğin; yukarıdaki iş, her biri 20ns süreli 5 adet alt işleme bölünebilirse saat
işaretinin periyodu 25ns olur.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.12
www.buzluca.info
6
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Bilgisayar Mimarisi
7
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.15
www.buzluca.info
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.16
www.buzluca.info
8
Bilgisayar Mimarisi
Bilgisayar Mimarisi
9
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Bilgisayar Mimarisi
10
Bilgisayar Mimarisi
Bilgisayar Mimarisi
11
Bilgisayar Mimarisi
Komut
uzunluğu Saklayıcı
RA A 0
4 sekizli Dosyası A_Out
olduğun 1
dan RD ALU Bayraklar (C, Z, V, N)
R_Sel
aslında RB 0 Opr
+ 4, WE Ra Rb Rd B DB DB
eklenir. 1
Rs1, Rs2, Rd B_Sel DB
Denetim Birimi DB
1 + OPCode OPCode
Offset / Immediate PC_Rel
PC +
PC_Select
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.23
www.buzluca.info
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.24
www.buzluca.info
12
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Bu derste, iş hattı ile ilgili kavramları açıklamak için örnek bir 5 katmanlı RISC
iş hattı kullanılacaktır.
1. Instruction fetch (IF):
Sıradaki komutu bellekten al, program sayacını (PC) arttır (komut uzunluğu
kadar). Eğer bir komut 4 sekizli ise, PC ← PC + 4.
2. Instruction Decode, Read registers (DR)
Komutu çözerek tüm birimlere gidecek olan denetim işaretlerini oluştur ve
saklayıcı dosyasında ilgili saklayıcıları (operandları) oku.
3. Execute (EX)
ALU işlemlerini yap, dallanma komutlarının hedef adreslerini hesapla.
4. Memory (ME)
Eğer gerekli ise veri belleğine eriş (sadece load/store komutları)
5. Write back (WB)
Sonuçları saklayıcı dosyasına yaz.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.25
www.buzluca.info
Komut
uzunluğu Saklayıcı
RA A 0
4 sekizli Dosyası A_Out
olduğun 1
dan RD ALU Bayrakl
RB D_Sel
aslında 0 Opr
+ 4, WE Ra Rb Rd B DB DB
eklenir. 1
B_Sel DB
Denetim Birimi DB
1 +
PC_Rel
PC +
0 Dallan?
1
13
Bilgisayar Mimarisi
Komut
komut
uzunluğu 4
• Komutu oluşturan bitler iş hattı
sekizli ise saklayıcısına (IF/DR) yazılır.
• PC+1 değeri iş hattı saklayıcısına
(IF/DR) yazılır. Daha sonraki
1 + katmanlarda dallanma adresi hesabında
Sonraki komut
adresi PC+1 kullanılır.
PC
• Eğer dallanma varsa, PC_Select=1 olur,
dallanma hedef adresi PC'ye yazılır.
0
1 Dallanma hedef adresi
Diğer katmanlardan
PC_Select IF/DR İş hattı saklayıcısı
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.27
www.buzluca.info
Bilgisayar Mimarisi
Katman 2: Instruction Decode and Register Read (DR), Komut Çöz, Operand al
Sonuç / Veri
Hedef (varış) saklayıcı (Destination register) Diğer katmanlardan
Dosyası
Katman 1: Instruction Fetch (IF)
Ra Rb denetim bitleri
oluşturulur.
Komut
Rs1, Rs2, Rd
off/imm
(DR/EX) yazılır.
o Denetim bitleri
o Offset/immediate
Denetim
o RA, RB içeriği
İşlemcideki tüm birimleri o PC+1
IF/DR kontrol eden denetim bitleri DR/EX İş hattı saklayıcısı
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.28
www.buzluca.info
14
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.29
www.buzluca.info
Bilgisayar Mimarisi
A A_Out
D
A
0 Opr
B
B
1 ALU
İşlemi
B_Select +, -, ötele, …
off/imm
Veri
B
Belleğine
Bağıl dallanma
adresi hesabı
PC+1
Denetim Hedef
+
Dallanma
adresi
Denetim
EX/ME Dallan?
Dallanma adresi
DR/EX
Katman 1'e PC_Select
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.30
www.buzluca.info
15
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
D
• Veri B (STORE
F Adres komutu için) iş hattı
Katman 3: Execute (EX)
Veri saklayıcısından
Dout
M
belleği (EX/ME) okunur.
Din R/W CS • Eğer gerekli ise bellek
B
okuma/yazma işlemi
yapılır.
• Aşağıdaki bilgiler iş
hattı saklayıcısına
Denetim Hedef
(ME/WB) yazılır.
Katman 1'e
o Denetim bitleri
o Bellek erişimi
Denetim
sonucu (M)
o ALU'dan gelen
sonuç (aktarma) (D)
EX/ME Saklayıcısı ME/WB Saklayıcısı
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.31
www.buzluca.info
Bilgisayar Mimarisi
0
hattı saklayıcısından (ME/WB)
okunur.
Katman 4: Memory (ME)
ME/WB Saklayıcısı
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.32
www.buzluca.info
16
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.33
www.buzluca.info
Bilgisayar Mimarisi
17
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.35
www.buzluca.info
Bilgisayar Mimarisi
SUB R3,R4,R5 FI DR EX ME WB
18
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.37
www.buzluca.info
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.38
www.buzluca.info
19
Bilgisayar Mimarisi
Saat çevrimi
1 2 3 4 5 6 7 8
Komutlar
ADD R1,R2,R3 FI DR EX ME WB
ÖnceR3'e ilk
- - - - - yarıda yazılır,
2 çevrim sonra ikinci yarıda
gecikme - - - - - okunur.
SUB R3,R4,R5 FI DR EX ME WB
Yaz Oku
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.39
www.buzluca.info
Bilgisayar Mimarisi
A_Select
Katman 2: Decode Read (DR)
0
1 A
A
A_Out
D
ALU Bayraklar
B
Opr
B
ALU
İşlemleri
off/imm
B_Select +, -, ötele, …
B
20
Bilgisayar Mimarisi
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.42
www.buzluca.info
21
Bilgisayar Mimarisi https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
OperandSelect
A A_Out
A
D
ALU Bayrak
Adr
F
B
Opr
B Veri
ALU
Dout
M
İşlemi belleği
B_Select
off/imm
+, -, shift, …
Din R/W CS
B
Bilgisayar Mimarisi
Örnek:
Saat çevrimi
Komutlar 1 2 3 4 5 6 7
LDL $500(R4), R1 FI DR EX ME WB
1 çevrim gecikme - - - - -
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.44
www.buzluca.info
22
Bilgisayar Mimarisi
NOOP bir makine dili komutu olduğundan, iş hattında diğer komutlar gibi tüm
katmanlardan geçerek aynı şekilde işlenir.
NOOP komutları nedeniyle gecikme oluştuğundan sistemin performansı düşer.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.45
www.buzluca.info
Bilgisayar Mimarisi
23
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.47
www.buzluca.info
Bilgisayar Mimarisi
Örnek:
100 SUB R1, R2, R1 R1 ← R1 - R2
104 BGT $1C Branch if greater ($108 + $1C = $124 Hedef adres)
108 ADD R1, R1, R2
10C ADD R3, R4, R2 Eğer dallanma gerçekleşirse bu komutların
110 STL $00(R5), R2 atlanması gerekir.
114 LDL $0A(R6), R1
…
124 STL $00(R6), R2 BGT’nin hedefi
Hatırlatma: Bcc koşullu dallanma komutları son ALU işleminde oluşan bayrak
değerlerine göre davranırlar.
Örneğin; BGT komutu, işaret "N" (Negative) ve taşma "V" (Overflow) bayraklarını
değerlendirir.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.48
www.buzluca.info
24
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Bilgisayar Mimarisi
25
Bilgisayar Mimarisi
D
A A_Out
A
karar işlemleri EX
katmanında yapılır ve ALU Bayraklar
sonuçlar doğrudan IF
F
B
0 Opr
katmanına gönderilir. B
1
Eğer dallanma olursa ve
off/imm
durdurma (stalling)
B
çözümünde uygulanırsa 2
çevrim dallanma cezası Bağıl dallanma
oluşur. adresi hesabı
PC+1
+ Dallan?
Dallanma
Hedef
Adresi
Bilgisayar Mimarisi
Komutlar
SUB R1, R2, R1 FI DR EX ME WB
BGT $1C FI DR EX ME WB
Bu komutlar ADD R1, R1, R2 FI DR EX ME WB
atlanmalıydı. ADD R3, R4, R2 FI DR EX ME WB
Hedef: STL $00(R6), R2 FI DR EX ME WB
26
Bilgisayar Mimarisi
Saklayıcı
A
Bu iyileştirmeden sonra Dosyası
(Register File)
koşulsuz dallanma
B
komutunun (BRU) dallanma
Instruction
cezası 1 çevrim olur.
Denetim Birimi
Kod çözme
off/imm
Offset/imm.
Dallanma Hedef
+
Adresi
PC+1
PC+1
Katman 1'e (IF)
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.53
www.buzluca.info
Bilgisayar Mimarisi
Örnek:
Hedef adres ($108 + $1C = $124) hesaplandı Hedef adres FI katmanına
gönderildi.
Komutlar
SUB R1, R2, R1 FI DR EX ME WB
BRU $1C FI DR EX ME WB
Bu komut atlanmalı. ADD R1, R1, R2 FI DR EX ME WB
Hedef: STL $00(R6), R2 FI DR EX ME WB
27
Bilgisayar Mimarisi https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.56
www.buzluca.info
28
Bilgisayar Mimarisi
Komutlar
SUB R1, R2, R1 FI DR EX ME WB
BGT $1C FI DR EX ME WB
Derleyici NOOP FI DR EX ME WB
ekledi. NOOP FI DR EX ME WB
Hedef: STL $00(R6), R2 FI DR EX ME WB
PC, FI katmanının
sonunda güncellenir. BGT komutunun hedefi
PC ← Hedef olan komut alınır.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.57
www.buzluca.info
Bilgisayar Mimarisi
29
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.59
www.buzluca.info
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.60
www.buzluca.info
30
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.62
www.buzluca.info
31
Bilgisayar Mimarisi
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.64
www.buzluca.info
32
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.65
www.buzluca.info
Bilgisayar Mimarisi
Her koşullu dallanma komutu için dallanma geçmişi tablosunda bir öngörü biti (pi)
tutulur.
pi , i. koşullu dallanma komutunun öngörü bitidir.
Öngörü biti, ilgili komutun son çalışmasında dallanma olup olmadığını gösterir.
Eğer komutun son çalışmasında dallanma olduysa bir sonraki çalışmasında da
dallanma olacağı varsayılır.
Algoritma:
i. Koşullu dallanma komutunu al
Eğer (pi = 0) ise öngörü: "dallanma YOK", bellekte sıradaki komutu al
Eğer (pi = 1) ise öngörü: "dallanma VAR", dallanmanın hedefi olan komutu al
Eğer dallanma gerçekten olursa pi ←1
Eğer dallanma gerçekten olmazsa pi ←0
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.66
www.buzluca.info
33
Bilgisayar Mimarisi Lisans: https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Programda
son çalışmış
olan koşullu
dallanma
komutları
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.67
www.buzluca.info
Bilgisayar Mimarisi
Program çalışmaya başladığında BNZ komutunun p biti 1'dir (dallanma VAR öngörüsü).
Döngünün ilk çalışmasında BNZ'de doğru öngörü yapılacak ve döngünün başındaki
komut iş hattına alınacak.
p bitinin değeri (p=1) döngünün son çalışmasına kadar değişmeyecek.
Döngünün son çalışmasında p biti hâlâ 1'dir ve "dallanma VAR" öngörüsü yapılır; ama
counter sıfır olduğu için program döngünün başına dallanmaz ve döngüden sonraki
komut ile devam eder (yanlış öngörü). p sıfır yapılır (p ← 0).
Sonuç olarak 100 defa dönen bir döngüde 99 defa doğru, sadece bir defa yanlış
öngörü yapılmış oldu.
Döngüden sonra BNZ'nin p biti 0'dır, çünkü son çalışmada dallanma olmamıştır.
Aynı döngü başka bir döngünün içinde olduğu için tekrar çalıştığında ne olur?
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.68
www.buzluca.info
34
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.69
www.buzluca.info
Bilgisayar Mimarisi
Dallanma oldu
Öngörü: Dallanma olmadı Öngörü:
Program Dallanma Dallanma
çalıştığında VAR VAR
gerçekte 11 Dallanma oldu 10
olan
Bu yöntemde ancak peş peşe iki defa yanlış öngörü yapılırsa öngörü kararı değişir.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.70
www.buzluca.info
35
Bilgisayar Mimarisi
V: Dallanma VAR
"VAR"dan "YOK"tan
Y: Dallanma YOK
"YOK"a "VAR"a
Durum: 11 11 10 11 10 00 00 01 00 01 11
Öngörü: V V V V V Y Y Y Y Y V
Olan: V√ Y∅ V√ Y∅ Y∅ Y√ V∅ Y√ V∅ V∅ V√
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.71
www.buzluca.info
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.72
www.buzluca.info
36
Bilgisayar Mimarisi https://creativecommons.org/licenses/by-nc-nd/4.0/deed.tr
Örnek:
Problem:
Bir MİB’te dallanma sorunlarını çözümünde donanım tabanlı yöntemlerin
kullanıldığı bir iş hattı (pipeline) bulunmaktadır.
Bu MİB’te aşağıda verilen ve iç içe iki döngü içeren kod parçası çalıştırılmaktadır.
Counter1 ← 10
LOOP1 ------ ; Herhangi bir komut
Counter2 ← 10
LOOP2 ------ ; Herhangi bir komut
------ ; Herhangi bir komut
Counter2 ← Counter2 - 1
BNZ LOOP2 ; Sıfır değilse dallan
(Branch if not zero)
------ ; Döngüden sonraki komut
Counter1 ← Counter1 - 1
BNZ LOOP1 ; Sıfır değilse dallan
------ ; Döngüden sonraki komut
Farklı dallanma öngörüsü yöntemlerinin kullanılması durumunda, yukarıda verilen
kod parçasındaki iki dallanma komutunun (BNZ) yürütülmesinde oluşan doğru ve
hatalı dallanma öngörülerinin sayılarını veriniz.
Yanıtlarınızı kısaca açıklayınız.
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.73
www.buzluca.info
Bilgisayar Mimarisi
Çözüm:
a. Statik öngörü
i) Her zaman "dallanma var"
BNZ LOOP1: Sadece son yinelemede döngüden çıkarken yanlış öngörü olur; diğer
öngörüler doğrudur.
Doğru: 9 Yanlış: 1
BNZ LOOP2: Sadece son yinelemede döngüden çıkarken yanlış öngörü olur; diğer
öngörüler doğrudur.
Doğru: 10x9 = 90 Yanlış: 10x1 = 10
Toplam: Doğru: 99 Yanlış: 11
37
Bilgisayar Mimarisi
Çözüm (devamı):
Bilgisayar Mimarisi
www.akademi.itu.edu.tr/buzluca
2005 - 2018 Feza BUZLUCA 2.76
www.buzluca.info
38
Bilgisayar Mimarisi
39