You are on page 1of 28

Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.

0/

2. Hatt (Pipeline)

hattnda (pipeline) birden fazla i (rnein komutlar) paralel olarak ayn anda
yrtlrler.
Bir i hattnn verimli olarak alabilmesi iin
1. Farkl veriler zerinde defalarca tekrarlanan iler (task) olmas gerekir,
2. ler paralel yrtlebilen kk alt ilere blnebilmeli.

hattna rnek: Bir otomobil fabrikasndaki retim/montaj band


Burada i/grev (task) bir otomobilin montajnn yaplmasdr.
Bu i farkl otomobiller iin srekli tekrar edilir.
(otomobilin montaj), kk alt ilemlerden oluur; kaplarn taklmas,
tekerleklerin montaj, camlarn taklmas.
Bu alt ilemlerin her biri iin i hattnda (montaj band) bir istasyon oluturulur.
Bu istasyonlarda ayn anda paralel olarak farkl otomobiller zerinde allr.
rnein i. ii bir otomobilin camn takarken ayn anda (i+1). sradaki ii bir
nceki otomobilin tekerleklerini takmaktadr.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.1
www.buzluca.info

Bilgisayar Mimarisi

rnek: Bir otomobil fabrikasndaki istasyonlu retim/montaj band

stasyon 1 stasyon 2 stasyon 3

Adm = 1 Oto 1
stasyon 1 stasyon 2 stasyon 3

Adm = 2 Oto 2 Oto 1


stasyon 1 stasyon 2 stasyon 3

Adm = 3 Oto 3 Oto 2 Oto 1 Oto 1 hazrdr.


stasyon 1 stasyon 2 stasyon 3
Adm = 3'n sonunda Oto 1 ( 1 / Grev 1) tamamlanm olur.

Adm = 4 Oto 4 Oto 3 Oto 2 Oto 2 hazrdr.

stasyon 1 stasyon 2 stasyon 3

Adm = 3'ten sonra her admda yeni bir Oto () tamamlanr.


www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.2
www.buzluca.info

1
Bilgisayar Mimarisi

2.1 Bir i hattnn genel yaps:

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)

Her katman (ilem birimi) belli, sabit bir ii yapar.


Her saat evriminde (clock cycle) ilem birimi farkl veriler (i) zerinde alr.
(Saat iareti konusunda Saysal Devreler Ders Notlar Blm 6'da bilgi bulabilirsiniz.)
R1, R2,, Rk gibi saklayclar ara sonular tutarlar.
Tm segmanlar ortak bir saat iareti ile denetlenirler ve e zamanl alrlar.
Bir nceki verinin btn admlar tamamlanmadan (sonu retilmeden) nce i
hattnn giriinden yeni veriler alnr.
hattnn btn segmanlar dolduktan sonra her saat evriminde kta yeni
bir sonu retilir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.3
www.buzluca.info

Bilgisayar Mimarisi

rnek: A, B ve C dizisinin elemanlar nce bellekten okunacak ardndan aadaki


ilem yaplacaktr. Ai*Bi + Ci i=1,2,3,....
Ai Bi Ci

Bellek Okuma Bellek Okuma

Saat 1. Katman (layer,


R1 R2 segment)
Okuma

arpma Bellek Okuma


2. Katman
arpma ve okuma
R3 R4

Toplama 3. Katman
Toplama
R5
Sonu
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.4
www.buzluca.info

2
Bilgisayar Mimarisi

Bu rnekte grev alt ileme blnmtr: Okuma, arpma, toplama

segmanl olarak tasarlanan i hattnn almas:

Saat evrimi 1. Segman 2. Segman 3.Segman


R1 R2 R3 R4 R5
1 A1 B1 - - -
2 A2 B2 A1*B1 C1 -
3 A3 B3 A2*B2 C2 A1*B1 + C1 (lk sonu)
4 A4 B4 A3*B3 C3 A2*B2 + C2
5 A5 B5 A4*B4 C4 A3*B3 + C3

Not: Verinin nceden hazr olduu veya bellek okuma sresinin dier ilemlere gre
ok ksa olduu sistemlerde bellekten okuma ayr bir alt ilem olarak ele alnmaz.
Bu durumda sadece aritmetik ilemi yapan i hatt 3 yerine 2 katmanl olarak
tasarlanabilirdi.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.5
www.buzluca.info

Bilgisayar Mimarisi

2.2 Drt Segmanl Bir Hattnn


Uzay-Zaman Diyagram (Space-Time Diagram)
Bir i hattnda belli bir anda hangi iin hangi segmanda ilem grdn gstermek
iin uzay-zaman diyagramlar (zamanlama diyagram) kullanlr.
Aadaki rnek tabloda, saat evrimleri (admlar) stunlara, segmanlar satrlara, o
anda yaplan i (task) (veya ileme giren veriler) de tablonun iine yazlmtr.
rnek:
Zaman
(4 segman) Saat evrimi (admlar)
1 2 3 4 5 6 7
1 T1 T2 T3 T4 T5 T6
Segman

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
says k=4) sonunda tamamland. yeni bir i tamamlanr.

Drt i (T4) 7 saat evriminde tamamlanmtr.


www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.6
www.buzluca.info

3
Bilgisayar Mimarisi

Drt Segmanl Bir Hattnn Uzay-Zaman Diyagram (Space-Time Diagram)


Devam
Uzay-zaman diyagramlar farkl ekilde de oluturulabilir.
Aadaki diyagramda saat evrimleri (admlar) stunlara, veriler (iler) satrlara, o
anda etkin olan segman da tablonun iine yazlabilir.

Zaman 1nci i (T1) 4 saat evrimi (segman


Saat evrimi (admlar) says k=4) sonunda tamamland.
1 2 3 4 5 6 7
T1 S1 S2 S3 S4 k.dan sonraki her saat
T2 S1 S2 S3 S4 evriminde yeni bir i
ler

tamamlanr.
T3 S1 S2 S3 S4
T4 S1 S2 S3 S4

Drt i (T4) 7 saat evriminde tamamlanmtr.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.7
www.buzluca.info

Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

2.3 Hattnn salad hzlanma (Speedup):

hattndaki tm segmanlar ezamanl (synchronous) ilem yaptndan, saat


iaretinin periyot uzunluu (evrim zaman) (cycle time) en yava segmann gerek
duyduu alma zaman (gecikmesi) tarafndan belirlenir.
evrim zaman (cycle time) (saat iaretinin periyodu) tp aadaki gibi hesaplanr:

tp = max(i) + dr = M + dr

tp: evrim zaman (cycle time)


i : i. katmandaki devrenin gecikmesi
M : en byk gecikme (en yava katman)
dr : saklayclarn gecikmesi

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.8
www.buzluca.info

4
Bilgisayar Mimarisi

Hzlanma (Speedup):
k: hattndaki segman says
tp: saat periyodu (En yava birime gre ayarlanr.)
n: says (iin tekrar says)
1nci iin (T1) tamamlanmas iin k adet saat darbesi gereklidir.
Buna gre 1nci iin tamamlanma sresi: T(1) = ktp
Kalan n-1 iin tamamlanmas ii (n-1) evrim gereklidir. Sre: (n-1)tp
Tm ilerin (n adet) toplam sresi: (k+n-1)tp
tn : hatt kullanlmasayd bir iin sresi
hatt olmadan gereken sre n tn
Hzlanma (Speedup): S = S=
hatt ile gerekli olan sre (k + n 1) t p
says ok artarsa: n
tn
S =
lim
n
tp
Eer tn= ktp varsaym yaplrsa
(ana ii k adet eit sreli kk alt ileme blmek mmknse):
Smax = k (Teorik maksimum hzlanma)
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.9
www.buzluca.info

Bilgisayar Mimarisi

Hzlanma ile ilgili yorumlar:


hattnn verimini arttrmak iin bir ii mmkn olduu kadar eit (en azndan
yakn) srelerdeki kk alt ilere blmek gerekir.
Eer alt ilemlerin sreleri ksa olursa saat iaretinin evrim sresi de ksalr.
Hatrlatma; en yava birim evrim sresini belirler.
hattndaki katman saysnn etkileri:
Olumlu:
Eer i ok sayda ksa sreli alt ilere blnebiliyorsa segman saysn
arttrmak saat iareti hzlandrr ve i hattnn verimi arttrr.
Smax = k
Olumsuz:
hattnn maliyeti artar. Her katmann sonuna yerletirilen saklayclar
maliyet, enerji tketimi, boyut asndan sisteme ykler getirir.
lk bataki 1. i iin bekleme sresi artar. T(1) = ktp
Dallanma cezalar artar. Dallanma cezalar "2.5 Hattnda Oluabilen
Sorunlar" blmnde ele alnacaktr.
Bir i hatt tasarlanrken btn bu olumlu ve olumsuz noktalar birlikte dikkate
alnmaldr.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.10
www.buzluca.info

5
Bilgisayar Mimarisi

i alt ilemlere blmenin hzlanma zerindeki etkisi:


Eer ana i ksa sreli kk alt ilere blnebiliyorsa sisteme daha hzl bir
saat iareti uygulanabilir.
rnek olarak toplam sresi 100 ns olan bir T iini ele alalm.
Bu iin farkl ekillerde alt ilere blnebildii varsaylmtr.
Durum A: 2 eit katmana blnyor.
S1 = 50ns S2 = 50ns
T:
Saklayclarn gecikmesinin 5 ns olduu varsaylrsa saat evrimi tp = 50+5 = 55 ns

Durum B: 3 adet dengesiz katmana blnyor.


S1 = 25ns S2 = 25ns S3 = 50ns
T:
Saat evrimi tp = 50+5 = 55 ns (en yava katman M = 50ns )
hattnda daha fazla katman olmasna ramen Durum A'ya gre bir hzlanma
salanmamtr.
Ayrca i hattnn maliyeti de artmtr.
lk iin tamamlanma sresi uzamtr. T(1) = ktp
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.11
www.buzluca.info

Bilgisayar Mimarisi

i alt ilemlere blmenin hzlanma zerindeki etkisi: (devam)

Durum C: 3 adet yakn sreli katmana blnyor.

S1=30ns S2=30ns S3=40ns


T:

Saat evrimi tp = 40+5 = 45 ns (en yava katman M =40ns )


Saat iareti Durum A ve B'ye gre hzlanmtr.

Sonu:
hattnn hzlanma salayabilmesi iin ii ok sayda, ksa sreli ve dengeli alt ie
blmek gerekir.
rnein yukardaki rnek i, her biri 20ns sreli 5 adet alt ileme blnebilirse
saat iaretinin periyodu 25ns olur.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.12
www.buzluca.info

6
Bilgisayar Mimarisi

2.4 Komut Hatt (Instruction Pipeline)


Komut dzeyinde paralellik (Instruction-Level Parallelism)
Merkezi ilem birimleri her komutu ilerken belli alt ilemleri tekrar ederler.
Bir komutun MB'te ilenme srecine komut evrimi (instruction cycle) denir.
Komut evriminin genel olarak alt evrimleri: Komut alma ve zme, operand alma,
yrtme, kesme.
En basit i hatt yaps iki segmanl olarak kurulabilir:
1) Komut alma ve zme 2) Operandlar alma ve komut yrtme
Komut yrtme birimi bellee erimedii zamanlarda komut alma birimi sradaki
komutu bellekten alarak bir komut saklaycsna yazar.
Bylece o andaki komut yrtlrken sonraki komut bellekten paralel olarak
okunur.
Komutlarn bu ekilde paralel ilenmesine Komut dzeyinde paralellik
(Instruction-Level Parallelism) denir.

Hatrlatma; i hattndaki hzlanmay arttrmak iin i hattn ok sayda ksa sreli


katmandan oluturmak gerekir.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.13
www.buzluca.info

Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

Komut Hatt (Instruction Pipeline) (devam)


Verimi arttrmak iin komut ileme daha kk alt ilemlere blnerek 6 segmanl
bir i hatt oluturulabilir:
1. Komut alma (Fetch instruction) (FI):
2. Komut zme (Decode instruction) (DI):
3. Operand adresi hesab (Calculate addresses of operands ) (CO)
4. Operand alma (Fetch operands) (FO)
5. Komut yrtme (Execute instruction) (EI)
6. Sonucu yazma (Write operand) (WO)
Bu kadar ayrntl blmeleme aadaki problemler nedeniyle verimli olmaz:
Segmanlarn sreleri farkldr.
Her komut btn alt ilemlere gerek duymaz.
Deiik segmanlar ayn anda bellek eriimine gerek duyar.
Bu nedenle baz alt ilemler birletirilerek komut i hatlar daha az (rnein 4
veya 5 ), dengeli segmanla oluturulur.
rnein 80486'da 5 segmanl bir i hatt bulunmaktayd.
Daha ok segmana sahip i hatt ieren ilemciler de bulunmaktadr.
rnein Pentium 4 ailesinin ilemcilerinde 20 segmanl i hatlar bulunmaktadr.
Bu ilemcilerde komut evrimin alt ilemleri de daha kk ilemlere blnmtr.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.14
www.buzluca.info

7
Bilgisayar Mimarisi

rnek Bir Komut Hatt


1. FI (Fetch Instruction): Komut alma
2. DA (Decode, Address): Komutu z , efektif adresi hesapla
3. FO (Fetch Operand): Operand al
4. EX (Execution): Yrtme (lem yaplr, saklayclar gncellenir.)
Komut alma ve operand alma ilemlerinin ayn anda yaplabilmesi iin komut ve veri
belleklerinin ayr olduklar varsaylmtr.
5. WR (Write Memory): Bellee yazma. Bu rneklerde gz ard edilmitir.
Komut i hattnn zaman diyagram (ideal durum):
Admlar lk komut
Saat evrimi
Komutlar 1 2 3 4 5 6 7 8 tamamland.
1
4 evrim
FI DA FO EX
2 FI DA FO EX Bir saat evrimi
sonra ikinci komut
3 FI DA FO EX tamamland.
4 FI DA FO EX
5 FI DA FO EX
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.15
www.buzluca.info

Bilgisayar Mimarisi

2.5 Hattnda Oluabilen Sorunlar (Pipeline Hazards) (Conflicts)


2.5.1 Denetim Sorunlar (Control Hazards):
Dallanma ve Kesmeler (Branches, Interrupts)
hattnda komutlar paralel olarak yrtldnden bir dallanma komutu ilenirken
bellekte ondan sonra gelen ancak dallanma nedeniyle yrtlmeyecek olan komut
(veya komutlar) da i hattna alnm olur.
Eer nlem alnmazsa programn mant gerei yrtlmemesi gereken komutlar da
yrtlm olur.
rnek:
1. Komut_1 Koulsuz dallanma komutu (BRA / JUMP)
2. JUMP Hedef Bellekte dallanmann peindeki komut (next instruction).
3. Komut_3 Programa gre yrtlmemesi gerekir.
:
4. Hedef Komut_4 Dallanmann hedefi, dallanmadan sonra yrtlecek
komut (target instruction).

Koulsuz dallanma komutu JUMP ilenirken Komut_3 de i hattna girmi olur.


Programn yanl almasn nlemek iin i hattn durdurmak (stall) ve Komut_3
almadan nce i hattn boaltmak gerekir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.16
www.buzluca.info

8
Bilgisayar Mimarisi

a. Koulsuz Dallanma (Unconditional Branch) Komut zldnde


dallanma olduu anlalr.
Saat evrimi
Komutlar 1 2 3 4 5 6 7
Dallanlacak adres
Komut 1 FI DA FO EX alnyor (Mutlak ya
DA da bal).
Koulsuz Dallan 2 FI FO EX
Komut 3 FI PC (program sayac)
- -
gncelleniyor.
Hedef Komut 4 FI DA PC = Hedef
(dallanlacak adres)
Sorun: Bu komut bouna Dallanma cezas Dallanmadan sonra
alnd. (Branch penalty) gidilen hedef komut
Bu komut yrtlmemeli! hatt durdurulacak (Dallanmann hedefi)
hattndan silinecek. ve boaltlacak.

Koulsuz dallanma komutu zld (anlald) anda olas nlemlerden biri i


hattna yeni komut alma ilemini (FI segmann) durdurmaktr.
Dallanma komutunun yrtlmesi sonucu hedef komutun adresi hesaplanp
program sayac (PC) gncellendikten sonra komut alma ilemi tekrar balar.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.17
www.buzluca.info

Bilgisayar Mimarisi

b. Koullu Dallanma (Conditional Branch):


Koullu dallanma komutlar yrtlrken iki durum oluur;
1. Koul yanltr (dallanma olmaz), 2. koul dorudur (dallanma olur)

b1. Koullu dallanma (koul yanlsa):


Koul doru deilse i hattn durdurmaya veya boaltmaya gerek yoktur, nk
program bir sonraki komut ile devam edecektir.
Saat evrimi nceki komut bayraklar
Komutlar 1 2 3 4 5 6
(koullar) belirliyor.
1 FI DA FO EX
Koullu Dallan. 2
PC deimedi.
FI DA FO EX
Dallanma gereklemedi.
3 FI DA FO EX
Dallanmann peindeki komut
yrtlyor.
Koula baklmakszn bir
sonraki komut alnd. Dallanma olmad iin
boaltlmayacak (ceza yok).
Koulun doru olup olmad ancak dallanma komutu yrtldkten sonra belli olur.
Eer koul yanlsa (dallanma yoksa) dallanma cezas olumaz.
Eer koul doru karsa zm yntemlerine gerek duyulur (sonraki yanslar).
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.18
www.buzluca.info

9
Bilgisayar Mimarisi

b2. Koullu dallanma (koul doru ise):

Saat evrimi Koul doru.


Komutlar 1 2 3 4 5 6 7 Dallanlacak adres
1 DA FO EX (Hedef) PCye yazlyor.
FI
PC = Hedef
Koullu Dallan. 2 FI DA FO EX hatt boaltlmal.
3 FI DA FO -
4 FI DA - Bu segmanlar
durdurulur.
5 FI -
Hedef 6 FI DA

hatt Dallanma cezas: Dallanma ile gidilen


boaltlyor. 3 saat evrimi komut (hedef)

Dallanma cezasnn sresi i hattndaki segmanlarn saysna ve ilevlerine baldr.


Bu rnek i hattnda dallanma cezas 3 saat evrimidir; ancak baka yaplardaki i
hatlarnda bu sre farkl olabilir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.19
www.buzluca.info

Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

2.5.2. Kaynak atmas (Resource Conflict), Yapsal Sorun (Structural Hazard):


hattnda ayn anda ilenen iki komut ayn kaynaa (bellek, ALU) gerek duyarsa
kaynak atmas oluur.
a) Bellek atmas: ki farkl segmanda ayn bellek modlne eriilmek istenirse
rnein komut alma ile operand okuma/yazma ayn anda olamaz.
zmler:
Komutlarn belli blmleri paralel deil, pe pee seri ilenir. hattnn belli
segmanlar durdurulur. Bu zm performans drr.
Harvard mimarisi: Komutlar ve veriler iin ayr bellek
Komut kuyruu veya cep bellek: Bir komut ilenirken bellee eriilmedii
anlarda sradaki komutlar bellekten okunarak bir kuyrua yazlr.
b) lem birimi (ALU, FPU) atmas: ki farkl segmanda ayn ilem birimine
(Arithmetic Logic Unit- ALU, Floating Point Unit- FPU) gerek duyulursa.
zmler:
lem birimlerinin says arttrlr. rnein adres hesab ve veri ileme iin
iki ayr ALU kullanlr.
lem birimleri de i hatt olarak tasarlanarak paralellik salanr. rnek FPU

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.20
www.buzluca.info

10
Bilgisayar Mimarisi

2.5.3. Veri atmas (Data Conflict), Veri Bamll (Data Dependency):


ki farkl komut ayn bellek blgesine erimek istediinde oluabilir.
Bu sorun zlmezse program yanl sonu retebilir.
a) Operand bamll:
Bir komutun kaynak operand dier bir komutun sonucuna baldr.
rnek (68000)
Saat evrimi DATA gncelleniyor
Komutlar 1 2 3 4 5

ADD.W D1, DATA FI DA FO EX Operand


MOVE.W DATA, (A0) FI DA FO EX bamll

Burada ayn zamanda DATA'nn geerli olmayan


bellek atmas da vardr. eski deeri alnyor.

b) Adres Bamll:
Veri atmas (bamll) adres saklayclarnda (iareti - pointer) da oluabilir.
rnek (68000)
ADDA.W #2, A0
MOVE.B (A0)+, D0
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.21
www.buzluca.info

Bilgisayar Mimarisi

2.5.3. Veri atmas (Data Conflict), devam


farkl tipte veri atmas (data hazard) oluabilir:
Yazmadan sonra okuma (Read after write) (RAW): Bu tre gerek bamllk
(true dependency) da denir.
Bir komut bir saklaycy veya bellek gzn deitirmektedir. Daha sonra gelen
bir komut da ayn saklayc veya bellek gzn okumaktadr.
Eer i hatt nedeniyle okuma ilemi yazmadan nce yaplrsa veri atmas
sorunu oluur.
Okumadan sonra yazma (Write after read) (WAR): Anti bamllk da denir.
Bir komut bir saklaycy veya bellek gzn okumaktadr. Daha sonra gelen bir
komut da ayn saklayc veya bellek gzne yazmaktadr.
Eer yazma ilemi okumadan nce yaplrsa veri atmas sorunu oluur.
Yazmadan sonra yazma (Write after write) (WAW): k bamll da
denir.
ki komut ayn saklaycy veya bellek gzne yazmaktadr.
Eer yazma ilemleri programda belirtilenden farkl srada olursa veri atmas
sorunu oluur.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.22
www.buzluca.info

11
Bilgisayar Mimarisi

2.6 Veri atmas sorununun zmleri:


Operand ynlendirme (Operand forwarding or Bypassing):
ALU'nun k ile girii arasnda ek bir balant (bypass) oluturulur.
Operand ynlendirme yntemini aklamak iin RISC ilemcilerde sk kullanlan
aadaki komut i hatt yaps kullanlacaktr.
rnek i hatt:
1. FI (Fetch Instruction)
2. DO (Decode, Operand (register) fetch): Operand (saklayc deeri) alnr.
3. EX (Execution): Saklayclar zerinde ilem yaplr.
4. WO (Write Operand) : Sonu saklayclara yazlr.
R1 gncelleniyor
Saat evrimi
rnek: Komutlar 1 2 3 4 5

ADD R1, R2, R3; R1R2+R3 FI DO EX WO Yazmadan sonra


SUB R4, R5, R1; R4R5-R1 FI DO EX WO okuma (RAW)
bamll

SUB komutu R1'i henz ADD komutu


R1'in geerli olmayan
tarafndan gncellemeden nce okuyor.
nceki deeri okunuyor.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.23
www.buzluca.info

Bilgisayar Mimarisi

Operand ynlendirme (Bypassing) devam:


Ynlendirme (Bypass)

1
M
R0 0 U A
R1 X

: 1 F
M
B Bellek ilemleri
0 U ile ilgili segman
X
bu izimde
ALU gsterilmemitir.
Saklayc Dosyas
s
hatt saklayclar hatt saklayclar
DO EX WO
s girii, i hattnn atma sezme (hazard detection) birimi tarafndan denetlenir.
ALU'nun giriine ya saklayclardan gelen deeri ya da ALU'nun kndan dorudan
gelen deeri (bypass) ynlendirir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.24
www.buzluca.info

12
Bilgisayar Mimarisi

Operand ynlendirme (Bypassing) devam:


Eer atma sezme birimi bir nceki ALU ileminin hedef saklaycsnn imdiki ALU
ileminin kayna olduunu sezerse denetim birimi ALU'nun giriine saklaycdan
gelen deeri deil, ALU'nun kndan dorudan gelen deeri (bypass) ynlendirir.
rnek:
Saat evrmi
Komutlar 1 2 3 4 5

ADD R1, R2, R3; R1R2+R3 FI DO EX WO


SUB R4, R5, R1; R4R5-R1 FI DO EX WO

R1'in geerli olmayan nceki hatt denetim birimi


deeri okunuyor. ALU'nun giriine saklaycdan
Bu geersiz deer EX segmannda DO'da alnan geersiz deeri
kullanlmayacak. deil, ALU'nun kndan
dorudan gelen deeri (bypass)
ynlendirir.

Eer sorunu operand ynlendirme ile zmek mmkn olursa i hattn durdurmaya
gerek olmaz ve performans dmez.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.25
www.buzluca.info

Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

2.6 Veri atmas sorununun zmleri (devam):


Donanm Kilidi (Hardware interlock) :
Bir donanm tm komutlar izler. Veri bamll olan komutlarn i hattna girmesi
geciktirilir.
hattnn komut alma segman (FI) gerekli saat evrimi kadar durdurulur.
Derleyici Tabanl zmler:
Ek donanma gerek yoktur, yazlm temelli zmlerdir.
- Gecikmeli Ykleme (Delayed Load):
a) Derleyici, baml komutlar arasna NOP (No Operation) komutu koyar.
hattnn performans der.
rnek: ADD R1, R2, R3; R1R2+R3
NOP
NOP
SUB R4, R5, R1; R4R5-R1
b) Derleyici eer mmknse veri atmasna neden olan komutlarn yerini
deitirir. Burada programn algoritmasnn deimemesi salanr.
Bu zm tercih edilir.
Derleyici tabanl zmler "2.8 RISC hatt" blmnde ele alnmtr.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.26
www.buzluca.info

13
Bilgisayar Mimarisi

2.7 Dallanma sorunlarnn ele alnmas:


Programlardaki dallanma komutlar nedeniyle i hatlarnn durulmas ve boaltlmas
gerektii daha nce gsterilmiti (yans 2.17, 2.19).
Aksi durumda ilemci program gerei atlanmas gerek komutlar da yrtr.
hattn durdurmak veya boaltmak sistemin performansn drr.
Dallanma komutunun bellekte peinden gelen komut yerine, dallanmann hedefi olan
komutu i hattna almak performans dn nlemek iin yararl olur.
Bu konuda iki temel sorun vardr:
1. Dallanmann hedef adresi dallanma komutunun ancak yrtme evriminde belli
olur.
Bu nedenle hangi hedef komutun i hattna alnaca dallanma komutu
yrtlnceye kadar belli deildir.
Bu problemi zmek iin dallanma hedef tablosu (branch target table)
kullanlr (yans 2.29).
2. Koullu dallanma sorunu: Dallanma komutu yrtlnceye kadar dallanmann
gerekten olup olmayaca belli deildir (yans 2.19).
Bu problemi zmek iin dallanma ngr (branch prediction) yntemleri
kullanlr.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.27
www.buzluca.info

Bilgisayar Mimarisi

Dallanma problemine ilikin zmler:


2.7.1 nceden komut alma (Target Instruction prefetch):
a) Koulsuz dallanma
Koulsuz dallanma komutu zldnde dallanma ile gidilecek olan hedef komut i
hattna alnr.
Hedef komutu nceden belirlemek iin dallanma hedef tablosu kullanlr.
Dallanma hedef tablosunda son alan belli saydaki dallanma komutunun adresleri
ve son altklarnda nereye gidildii (hedef adres) tutulur (yans 2.29).

b) Koullu dallanma
Koullu dallanmalarda hem dallanmadan sonraki komut (koul yanl ise
kullanlacak) hem de dallanma ile gidilmesi olas olan hedef komut (koul doru ise
kullanlacak) i hattna nceden alnr.
ki ayr komut dizisinin ayn anda ilenebilmesi iin iki paralel i hattna gerek
vardr.
En azndan iki ayr komut alma katmanna gerek duyulur.
Hedef komutu nceden belirlemek iin dallanma hedef tablosu kullanlr.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.28
www.buzluca.info

14
Bilgisayar Mimarisi

Dallanma hedef tablosu (branch target table (buffer) ):

Son alan belli saydaki dallanma komutunun adresleri ve son altklarnda


nereye gidildii (gidilen yerdeki bir ka komut) bir arml bellekte (associative
memory) tutulur.
( arml bellekte (associative memory) 8. blmde aklanacaktr.)
Bylece gidilecek adres hesaplanmadan nce dallanma komutundan sonraki
komutlara eriilebilir.
Tutulan komut says tablo boyutu ile snrldr.

rnek:
Dallanma Komutu adresi Hedef adres .
Programda en son $A000 $B000 $A000 JUMP Hedef
alan belli . ..
saydaki her . ..
dallanma komutu $B000 Hedef ..
iin bir satr vardr.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.29
www.buzluca.info

Bilgisayar Mimarisi

2.7.2 Dallanma ngrs (Branch prediction):

Koullu dallanma komutu ile karlaldnda dallanma ngrs yntemleri


dallanmann olup olmayacan ngrmeye alrlar.
ngr sonucuna gre bellekteki bir sonraki komut veya dallanmann hedefi olan
komut i hattna alnr.
Eer ngr doru karsa dallanma cezas olmaz.
ngr yanl olursa i hatt durdurulur ve boaltlr.

Statik dallanma ngrs stratejileri:


a) Her zaman "dallanma yok" ngrs: Her zaman dallanma olmayaca ngrlr
ve bellekte dallanmadan sonra gelen komut i hattna alnr.
b) Her zaman "dallanma var" ngrs : Her zaman dallanma olaca ngrlr ve
dallanmann hedefi olan komut i hattna alnr.
Programlarn davrann inceleyen almalar, koullu dallanmalarn %50'sinden
fazlasnda dallanmann gerekletiini gstermilerdir.
Bu nedenle "her zaman dallanma var" ngrs performans asndan daha iyi
sonu vermektedir.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.30
www.buzluca.info

15
Bilgisayar Mimarisi

Dinamik dallanma ngrs stratejileri:

Dinamik dallanma ngrs stratejileri o anda alan programdaki tm koullu


dallanma komutlarnn gemii ile ilgili istatistik tutarak dallanmann olup
olmayacan ngrmeye alrlar.
Programdaki her koullu dallanma komutu ile bir veya daha fazla sayda ngr
biti (veya saya) (prediction bits) ilikilendirilir.
Komutlarn gemii ile ilgili bilgi (dallanma gerekleme oran) salayan bu bitler
bir dallanma gemii tablosunda (branch history table) tutulur (yans 2.32).

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.31
www.buzluca.info

Bilgisayar Mimarisi

Dallanma hedef tablosu ve dallanma gemii tablosu (branch history table):


ngr bitleri hzl eriilebilen bir bellekte oluturulan dallanma gemii
tablosunda (branch history table - BHT) tutulur.
Dallanma gemii tablosunda, en son alan belli saydaki her koullu dallanma
komutu iin komutun bellek adresi, hedef adresi ve durum (ngr) bitleri tutulur.
ngr bitleri dallanma komutunun her almasnda dallanma olup olmamasna gre
deer alrlar.
Koullu dallanma komutu tekrar altnda bu bitler i hatt denetim birimi
tarafndan karar vermek iin kullanlr.
Eer "dallanma VAR" ngrs yaplrsa dallanma komutu yrtlmeden nce
tablodaki hedef adresi kullanlarak gidilecek olan komut i hattna alnabilir.
Durum
Dallanma komutu adresi Hedef adres (ngr) bitleri

Programda
son alm
olan koullu
dallanma
komutlar

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.32
www.buzluca.info

16
Bilgisayar Mimarisi

1 bit dinamik dallanma ngr yntemi :

Her koullu dallanma komutu iin dallanma gemii tablosunda bir ngr biti (pi)
tutulur.
pi , i. koullu dallanma komutunun ngr bitidir.
ngr biti, ilgili komutun son almasnda dallanma olup olmadn gsterir.
Eer komutun son almasnda dallanma olduysa bir sonraki almasnda da
dallanma olaca varsaylr.
Algoritma:
i. Koullu dallanma komutunu al
Eer (pi = 0) ise ngr: "dallanma YOK", bellekte sradaki komutu al
Eer (pi = 1) ise ngr: "dallanma VAR", dallanmann hedefi olan komutu al
Eer dallanma gerekten olursa pi 1
Eer dallanma gerekten olmazsa pi 0

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.33
www.buzluca.info

Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

rnek: 1 bitlik ngr yntemi ve dngler


ngr yntemleri zellikle dnglerde yararl olur.
rnek:
counter 100 ; saklayc veya bellek gz
LOOP ---- ; dngdeki komutlar
----
Decrement counter
BNZ LOOP ; Branch if Not Zero (koullu dallanma, p biti vardr)
---- ; dngden sonraki komut

Program almaya baladnda BNZ komutunun p biti 1'dir (dallanma VAR ngrs).
Dngnn ilk almasnda BNZ'de doru ngr yaplacak ve dngnn bandaki
komut i hattna alnacak.
p bitinin deeri (p=1) dngnn son almasna kadar deimeyecek.
Dngnn son almasnda p biti hl 1'dir ve "dallanma VAR" ngrs yaplr; ama
counter sfr olduu iin program dngnn bana dallanmaz ve dngden sonraki
komut ile devam eder (yanl ngr). p sfr yaplr (p 0).
Sonu olarak 100 defa dnen bir dngde 99 defa doru, sadece bir defa yanl
ngr yaplm oldu.
Dngden sonra BNZ'nin p biti 0'dr, nk son almada dallanma olmamtr.
Ayn dng baka bir dngnn iinde olduu iin tekrar altnda ne olur?
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.34
www.buzluca.info

17
Bilgisayar Mimarisi

1 bit dinamik dallanma ngr yntemindeki sorun:


LOOP_EX
( ie dngler) ...
LOOP
Birden fazla defa alan (iteki) dnglerde her defasnda
iki defa yanl ngr yaplr;
biri dng ilk altnda, dieri de dngden karken. BNZ LOOP
...
BNZ LOOP_EX

Hatrlayn; nceki rnekte dngden sonra BNZ'nin p biti 0'dr.


teki dngye tekrar gelindiinde, ilk almada BNZ'deki ngr "dallanma
YOK" olacaktr.
Ancak program dallanarak dngnn bana dnecektir (birinci hata).
imdi p biti 1 olur, nk dallanma olmutur.
Dngnn son almasna kadar ngrler doru olacaktr.
Dngnn son almasnda nceki rnekte de gsterildii gibi yine hatal ngr
yaplr (ikinci hata).

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.35
www.buzluca.info

Bilgisayar Mimarisi

2 bit dinamik dallanma ngr yntemi:


Her koullu dallanma komutuna iki ngr (durum) biti atanr.
Eer komut 11 veya 10 durumlarndaysa "dallanma VAR" ngrs yaplr.
Eer komut 00 veya 01 durumlarndaysa "dallanma YOK" ngrs yaplr.

Dallanma oldu
ngr: Dallanma olmad ngr:
Program Dallanma Dallanma
altnda VAR VAR
gerekte 11 Dallanma oldu 10
olan

Sistemin Dallanma oldu Dallanma olmad


ngrs
(Tahmin)
ngr: Dallanma olmad ngr:
Dallanma Dallanma
YOK YOK Dallanma olmad
01 Dallanma oldu 00

Bu yntemde ancak pe pee iki defa yanl ngr yaplrsa ngr karar deiir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.36
www.buzluca.info

18
Bilgisayar Mimarisi

rnek: 2 bit dinamik dallanma ngrs

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
ngr: V V V V V Y Y Y Y Y V
Olan: V Y V Y Y Y V Y V V V

Pe pee 2 yanl ngr 2 yanl ngr


Gerekte
Gerekte Durum (karar) deiti Durum (karar) deiti
dallanma
dallanma oldu
YOK
Dallanma VAR
ngr yanl :
ngr doru
kt

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.37
www.buzluca.info

Bilgisayar Mimarisi

Doyan saya (Saturating counter):


Dier bir 2 bit dinamik dallanma ngr yntemi:
Dallanma ngrs yntemlerinin sonlu durumlu makineleri (finite state machine)
farkl ekillerde tasarlanabilir.
Doyan saya alternatif bir ngr yntemidir. Durum geileri farkldr.
Eer komut 11 veya 10 durumlarndaysa "dallanma VAR" ngrs yaplr.
Eer komut 00 veya 01 durumlarndaysa "dallanma YOK" ngrs yaplr.

Dallanma olmad Dallanma olmad Dallanma olmad


Dallanma
olmad
ngr: ngr: ngr: ngr:
Dallanma Dallanma Dallanma Dallanma
VAR VAR YOK YOK
11 10 01 00
Dallanma
oldu
Dallanma oldu Dallanma oldu Dallanma oldu

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.38
www.buzluca.info

19
Bilgisayar Mimarisi

rnek:
Problem:
Bir MBte dallanma sorunlarn zmnde donanm tabanl yntemlerin
kullanld bir i hatt (pipeline) bulunmaktadr.
Bu MBte aada verilen ve i ie iki dng ieren kod paras altrlmaktadr.
Counter1 10
LOOP1 ------ ; Herhangi bir komut
Counter2 10
LOOP2 ------ ; Herhangi bir komut
------ ; Herhangi bir komut
Counter2 Counter2 - 1
BNZ LOOP2 ; Sfr deilse dallan
(Branch if not zero)
------ ; Dngden sonraki komut
Counter1 Counter1 - 1
BNZ LOOP1 ; Sfr deilse dallan
------ ; Dngden sonraki komut
Farkl dallanma ngrs yntemlerinin kullanlmas durumunda, yukarda verilen
kod parasndaki iki dallanma komutunun (BNZ) yrtlmesinde oluan doru ve
hatal dallanma ngrlerinin saylarn veriniz.
Yantlarnz ksaca aklaynz.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.39
www.buzluca.info

Bilgisayar Mimarisi

zm:
a. Statik ngr
i) Her zaman "dallanma var"
BNZ LOOP1: Sadece son yinelemede dngden karken yanl ngr olur; dier
ngrler dorudur.
Doru: 9 Yanl: 1
BNZ LOOP2: Sadece son yinelemede dngden karken yanl ngr olur; dier
ngrler dorudur.
Doru: 10x9 = 90 Yanl: 10x1 = 10
Toplam: Doru: 99 Yanl: 11

ii) Her zaman "dallanma yok"


BNZ LOOP1: Sadece son yinelemede dngden karken doru ngr olur; dier
ngrler yanltr.
Doru: 1 Yanl: 9
BNZ LOOP2: Sadece son yinelemede dngden karken doru ngr olur; dier
ngrler yanltr.
Doru: 10x1 = 10 Yanl: 10x9 = 90
Toplam: Doru: 11 Yanl : 99
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.40
www.buzluca.info

20
Bilgisayar Mimarisi

zm (devam):

b. Bir bitlik dinamik ngr yntemi


Dikkat: Her dallanma komutu iin ayr bir ngr biti kullanlr (Yanslar 2.31,
2.32).
i) Balang karar dallanma var
BNZ LOOP1:
Sadece son yinelemede dngden karken yanl ngr olur; dier ngrler
dorudur.
Doru: 9 Yanl: 1
BNZ LOOP2:
Dngnn ilk almasnda sadece son yinelemede dngden karken yanl ngr
olur; dier ngrler dorudur.
Dngden kldnda ngr biti p dallanma yok olarak deiir. Bu nedenle
dngnn 2.-10. almalarnda hem ilk hem de son yineleme de hatal ngr olur
(Yans 2.35).
Doru: 9 + 9x8 = 81 Yanl: 1+ 9x2 =19
Toplam: Doru: 90 Yanl: 20
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.41
www.buzluca.info

Bilgisayar Mimarisi

b. Bir bitlik dinamik ngr yntemi (devam):

ii) Balang karar dallanma yok


BNZ LOOP1:
lk ve son yinelemelerde yanl ngr olur; dier ngrler dorudur.
Doru: 8 Yanl: 2
BNZ LOOP2:
lk ve son yinelemelerde yanl ngr olur; dier ngrler dorudur.
Doru: 10x8 = 80 Yanl: 10x2 =20
Toplam: Doru: 88 Yanl: 22

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.42
www.buzluca.info

21
Bilgisayar Mimarisi

c. ki bitlik dinamik ngr yntemi:


i) Balang karar dallanma var
BNZ LOOP1: Sadece son yinelemede dngden karken yanl ngr olur; dier
ngrler dorudur.
Doru: 9 Yanl: 1
BNZ LOOP2: Sadece son yinelemede dngden karken yanl ngr olur; dier
ngrler dorudur.
Doru: 10x9 = 90 Yanl: 10x1 = 10
Toplam: Doru: 99 Yanl: 11

ii) Balang karar dallanma yok


BNZ LOOP1: Birinci, ikinci ve son yinelemelerde yanl ngr olur.
Hatrlatma, bu yntemde karar iki yanl ngr-den sonra deiir.
Doru: 7 Yanl: 3
BNZ LOOP2: Dngnn ilk almasnda; birinci, ikinci ve son yinelemelerde yanl
ngr olur. Dngnn ilk almasndan sonra karar hala dallanma var eklindedir.
Bu nedenle, dngnn 2.-10. almasnda sadece son yinelemede hatal ngr olur.
Doru: 7+ 9x9 = 88 Yanl: 3 + 9x1 = 12
Toplam: Doru: 95 Yanl: 15
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.43
www.buzluca.info

Bilgisayar Mimarisi

2.7.3 Derleyici Tabanl zmler:

Gecikmeli Dallanma (Delayed branch):

Optimize gecikmeli dallanma (Optimized delayed branch):


Derleyici eer mmknse, programn davrann deitirmeden baz komutlarn
yerini deitirerek i hattn durdurulmasna veya boaltlmasna gerek kalamadan
dallanma sorunlarn zer.
Bu zm mmkn olursa performans kayb yaanmaz.

NOOP (No Operation) komutlarnn eklenmesi:


Eer komutlarn yerini deitirmek mmkn deilse, derleyici dallanma
komutlarnn peine gerekli sayda NOOP komutu yerletirir.

Derleyici tabanl zmler "2.8 RISC hatt" blmnde ele alnmtr.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.44
www.buzluca.info

22
Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

2.8 RISC Hatt (RISC Pipeline)


RISC ilemcilerde veri ileme komutlar sadece saklayclar zerinde alr.
Bu komutlar iin sadece iki segmanl bir i hatt yeterli olurdu:
I: (Instruction fetch) Komut alma, A: saklayclarla ALU ilemi (execution)
Bellee sadece okuma/yazma iin eriilir. Bu komutlar saklayc-bellek aras
aktarm yaparlar.
Bu komutlarn bellek eriimi iin ek bir segmana (D) gerek duyulur.
Bylece bir RISC ilemci iin segmanl bir komut i hatt tasarlanabilir.
I A D

I: (Instruction Fetch) Komut Alma


A: (Decode, ALU Operation) Komut zme, ALU ilemi
D: (Data, memory access) Veri, bellek eriimi

Performans arttrmak iin daha fazla segmana (4, 5 veya daha fazla) RISC
ilemciler de vardr.
rnekler:
MIPS R3000: 5 katman
MIPS R4000: 8 katman (superpipelined)
ARM7: 3 katman, ARM Cortex-A8: 13 katman.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.45
www.buzluca.info

Bilgisayar Mimarisi

2.8.1 rnek: segmanl bir RISC komut i hatt


I (Instruction Fetch): Bellekten PC'nin gsterdii komut alnr.
A (Decode, ALU Operation): Komut zme ve ALU ilemi
ALU farkl i iin kullanlr.
1. Saklayclar zerindeki aritmetik/lojik ilemlerde
2. Bellek eriimi komutlarnda adres hesab iin. LDL (R5)#10,R15
3. Bal adreslemede PC PC+Y ilemi iin.
A (ALU) segmannda hem ilem yaplr hem de sonu var saklaycsna (R
veya PC) ayn saat evriminde yazlm olur.
D (Data): Bu segman sadece bellek eriimi (load/store) iin kullanlr. Bellekten
gelen veri saklaycya ya da saklaycdaki veri bellee yazlyor.

I ve D segmanlarnda ayn anda bellek eriimi yaplmaya allr.


Kaynak atmas sorununu zmek iin komut ve veriler iin paralel eriilebilen
ayr belleklerin (ve ayr yollarn) olmas gerekir (Harvard mimarisi).
Dier zmler komut ve veri kuyruklar veya cep bellek (cache memory)
kullanmaktr.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.46
www.buzluca.info

23
Bilgisayar Mimarisi

3 katmanl RISC i hattnda veri bamll (Data conflict (dependency) )


rnek Program:
100 LOAD M[X], R1 R1 M[X] ; Bellekten oku
104 LOAD M[Y], R2 R2 M[Y]
108 ADD R1, R2, R3 R3 R1 + R2 ADD komutu
10C STORE R3, M[Z] M[Z] R3 ; Bellee yaz bu segman
110 LOAD M[W], R4 R4 M[W] kullanmaz
hattnda veri bamll
Saat evrimi
Komutlar 1 2 3 4 5 6 7
LOAD R1 A D
Veri atmas: I
4. saat evriminde LOAD LOAD R2 I A D
komutu R2'ye yazyor; ayn anda
ADD komutu R2'yi kaynak ADD R1,R2,R3 A D
I
operand olarak kullanyor.
STORE R3 I A D
LOAD R4 I A D

Burada R3 ile ilgili bir


kaynak atmas yoktur.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.47
www.buzluca.info

Bilgisayar Mimarisi

zmler: Gecikmeli Ykleme (Delayed Load)

zm 1: NOOP (No Operation) komutlar eklemek


Derleyici LOAD ile sorun karan saklaycy kullanan komut arasna NOOP komutu
ekler.
Saat evrimi
100 LOAD M[X], R1 Komutlar 1 2 3 4 5 6 7 8
104 LOAD M[Y], R2 LOAD R1 D
I A
108 NOOP
10C ADD R1,R2, R3 LOAD R2 I A D
110 STORE R3, M[Z] NOOP I A
114 LOAD M[W],R4
ADD R1,R2,R3 A
I
STORE R3 I A D
Derleyici tarafndan LOAD R4 I A D
yerletirildi.
R2 operand olarak
kullanlyor.
R2
gncelleniyor. Farkl saat evrimleri

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.48
www.buzluca.info

24
Bilgisayar Mimarisi

zmlerin devam:
zm 2: Komutlarn yerini deitirmek, optimize edilmi gecikmeli ykleme
Derleyici programda uygun bir komun yerini deitirerek bu komutu LOAD ile sorun
karan saklaycy kullanan komut arasna yerletirir.
100 LOAD M[X], R1 Saat evrimi
104 LOAD M[Y], R2 Komutlar 1 2 3 4 5 6 7
108 LOAD M[W], R4 LOAD R1 I A D
10C ADD R1, R2, R3
LOAD R2 I A D
110 STORE R3, M[Z]
LOAD R4 I A D

Derleyici tarafndan yeri ADD R1,R2,R3 A


I
deitirildi.
STORE R3 I A D

R2 operand olarak
R2 gncelleniyor. kullanlyor.
Farkl saat evrimleri
Performans artmtr: Toplam 7 saat evrimi (zm 1'deki 8 evrim yerine).
Programn davran deimemitir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.49
www.buzluca.info

Bilgisayar Mimarisi

Dallanma Problemi
Dallanma komutlar (branch, jump) PC'yi ALU (yrtme) katmannda gncellerler.
Ancak dallanma komutu yrtlrken bellekte dallanmadan sonra yer alan komut da
(dallanmann hedefi deil) i hattna alnm olur.
Bu durumda ya bir donanm birimi i hattn boaltmal ya da derleyici tabanl bir
zm uygulanmaldr.
nlem alnmazsa:
rnek: Sanal Kod Saat evrimi
Komutlar
1 2 3 4 5 6 7
100 LOAD M[X], R1
104 ADD 1, R2 100 LOAD M[X], R1 I A D
108 JUMP 200
10C ADD R1,R2 104 ADD 1, R2 I A
. I A
108 JUMP 200
200 STORE R1, M[Y]
10C ADD R1,R2 I A

Bu komut yrtlmek 200 STORE R1,M[Y] I A D


istenmiyor.
Ya bir donanm birimi i
hattn boaltmal ya da PC gncelleniyor. Problem: Bu komut gereksiz
derleyici tabanl bir zm PC 200 (Hedef adres) yere alnm oldu.
uygulanmaldr. Aslnda almamas gerekiyor!
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.50
www.buzluca.info

25
Bilgisayar Mimarisi Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

zmler: Gecikmeli Dallanma (Delayed Branch)


zm 1: NOOP (No Operation) komutlar eklemek
Derleyici dallanma komutunun peine NOOP komutu ekler.
Sanal Kod NOOP ile gecikmeli dallanma
100 LOAD M[X], R1 Saat evrimi
Komutlar
1 2 3 4 5 6 7
104 ADD 1, R2
108 JUMP 200 100 LOAD M[X], R1 I A D
10C NOOP
110 ADD R1,R2 104 ADD 1, R2 I A
. A
108 JUMP 200 I
200 STORE R1, M[Y]
10C NOOP I A
200 STORE R1,M[Y] I A D
Derleyici tarafndan
yerletirildi.
PC gncelleniyor.
PC 200 (Hedef adres) Farkl saat evrimleri

imdi program istenen ekilde alr.


Ancak NOOP komutu eklemek performans drecektir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.51
www.buzluca.info

Bilgisayar Mimarisi

zmler: Gecikmeli Dallanma (Delayed Branch) (devam)


zm 2: Komutlarn yerini deitirmek, optimize gecikmeli dallanma
Derleyici uygun bir komutu (ounlukla dallanmadan nce gelen) dallanmann peine
kaydrr.
Komut yer deitirme i hattnda performans dne neden olmaz.
Sanal Kod Komut yer deitirme ile gecikmeli dallanma:
100 LOAD M[X], R1 Saat evrimi
Komutlar
1 2 3 4 5 6
104 JUMP 200
108 ADD 1, R2 100 LOAD M[X], R1 I A D
10C ADD R1,R2
. 108 JUMP 200 I A
200 STORE R1, M[Y] A
104 ADD 1, R1 I

200 STORE R1,M[Y] I A D

PC gncelleniyor. Bu komut zaten alnm


PC 200 (Hedef adres) oldu.

Performans artmtr: Toplam 6 saat evrimi (zm 1'deki 7 evrim yerine).


Programn davran deimemitir.
www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.52
www.buzluca.info

26
Bilgisayar Mimarisi

Komutlarn srasn deitirmek ile ilgili nemli noktalar:

Dallanmadan nce gelen gelen bir komut dallanmadan sonraya kaydrlabilir.


Dallanmann koulu veya hedef adresi kaydrlan komuta bal olmamal.
Bu yntem (eer mmknse) her zaman performans arttrr (NOOP'a gre).
zellikle koullu dallanmalarda bu yntem dikkatli uygulanmal.
Dallanmann bal olduu koulu belirleyen komut dallanmadan sonraya tanamaz.
Bu durumda NOOP eklenir.
Dier seenekler:
Derleyici tamak zere u komutlar seebilir:
Dallanmann hedefinden (gidilecek yerden)
- Tanan komut dallanma gereklemese de alacaktr. Bu program etkilememeli.
- Dallanma gerekleirse performans artar.
Dallanma komutunun peinden (dallanma olmazsa devam edilen kol)
- Tanan komut dallanma gereklese de alacaktr. Bu program etkilememeli.
- Dallanma gereklemezse performans artar.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.53
www.buzluca.info

Bilgisayar Mimarisi

2.8.2 Drt Segmanl bir RISC Hatt


RISC ilemcilerdeki komutlarn basitlii ve dzenli yaplar nedeniyle bu
ilemcilerin i hatlar veya drt segmanl olarak gereklenebilmektedir.
Drt segmanl bir RISC i hatt aadaki gibi tasarlanabilir:
I (Instruction Fetch): Bellekten PC'nin gsterdii komut alnr.
R (Decode, Read register file): Komutu z ve kaynak saklayclar oku
A (ALU Operation And register write): ALU ilemi ve sonular yazma
D (Data): LOAD/STORE komutlar bellek eriimi iin kullanr.

Bir i hattndaki segman saysn arttrmak eer segmanlar klyor ve


hzlanyorsa saat iaretinin de hzlanmasn salar (Bkz. 2.11).
Ancak segman saysndaki art atma durumunda cezalarn da artmasna neden
olur.
Yukarda verilen 4 segmanl rnek i hattnda gecikmeli ykleme zmn
uygulamak iin 2 adet NOOP komutu eklemek gerekir.
Benzer ekilde, gecikmeli dallanma zmn uygulamak iin 2 adet NOOP
komutunu dallanma sonrasna kaydrmak gerekir.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.54
www.buzluca.info

27
Bilgisayar Mimarisi

Gecikmeli Ykleme (4 segmanl i hatt)


2 adet NOOP komutu eklenecek.

100 LOAD M[X], R1


104 LOAD M[Y], R2 R2 gncelleniyor.
108 NOOP
10C NOOP NOOPlar ile gecikmeli ykleme:
110 ADD R1, R2, R3 Saat evrimi
Komutlar 1 2 3 4 5 6 7
LOAD R1 I R A D
LOAD R2 I R A D
Derleyici tarafndan NOOP I R A
yerletirildi.
NOOP I R A

ADD R1,R2,R3 I R A

R2 operand olarak
Farkl saat evrimleri
kullanlyor.

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.55
www.buzluca.info

Bilgisayar Mimarisi

Gecikmeli Dallanma (4 segmanl i hatt)


2 adet NOOP komutu eklenecek.
Sanal Kod
PC gncelleniyor.

PC 200 (Hedef adres)
108 JUMP 200
10C NOOP NOOPlar ile gecikmeli dallanma:
110 NOOP Saat evrimi
114 ADD 1,R1
Komutlar
1 2 3 4 5 6 7
118 ADD R1,R2
. 108 JUMP 200 I R A
200 STORE R1, M[Y] R
10C NOOP I A

110 NOOP I R A

200 STORE R1,M[Y] I R A D

Derleyici tarafndan
yerletirildi.
Farkl saat evrimleri

www.akademi.itu.edu.tr/buzluca
2005-2017 Dr. Feza BUZLUCA 2.56
www.buzluca.info

28

You might also like