Professional Documents
Culture Documents
SADRAJ
1. PROTONOST......................................................................................................................................... 2 1.1 Osnovne tehnike za eksploataciju paralelizma.................................................................................... 2 1.2 Protona obrada na nivou instrukcije osnovni koncepti...................................................................3 1.3 Performansne mere.............................................................................................................................. 5 1.4 Tehnika projektovanja protonog procesora .......................................................................................6 1.4.1 ALU instrukcije............................................................................................................................ 6 1.4.2 Instrukcije tipa Load i Store ......................................................................................................... 8 1.4.3 Instrukcija tipa Branch ............................................................................................................... 14
Protonost
1. PROTONOST
1.1 Osnovne tehnike za eksploataciju paralelizma
Kod dananjih raunara postoje sledee dve osnovne tehnike za eksploataciju paralelizma: A. protonost (pipelining) B. umnoavanje (replication) A. Protonost: Sa ciljem da se obavi izraunavanje, kaskadno se povezuje vei broj funkcionalnih jedinica. Ovaj nain obrade slian je fabrikoj liniji za asembliranje nekog proizvoda, kakav je recimo TV aparat, putniko vozilo i dr. Svaka funkcionalna jedinica odgovara odredjenom stepenu izraunavanja, a svako izraunavanje prelazi kroz ceo protono organizovan sistem. Za sluaj da se obavlja samo jedno izraunavanje protoni sistem ne moe da izdvoji paralelizam. No u sluajevima kada se isto izraunavanje obavlja vie puta, tada se izraunavanja u funkcionalnim jedinicama mogu preklapati. Neka protoni sistem ine n funkcionalnih jedinica (stepena) i neka je T vreme potrebno najsporijem stepenu da izvri svoju funkciju. Pod ovim uslovom novo izraunavanje moe da zapone svakog T-tog trenutka. Protoni sistem je popunjen kada sve funkcionalne jedinice obavljaju razliito izraunavanje. Nakon to se protoni sistem popuni, po jedan rezultat (izraunavanje) se dobija svakog T-tog trenutka. Saglasno prethodnom, kada je protoni sistem pun dobija se pojaanje n pod uslovom da se zanemare granini efekti koji odgovaraju punjenju (karakteristino za poetak) i pranjenju (tipino za kraj izraunavanja) protonog sistema. Na osnovu prethodne diskusije jasno se uo~ava da je proto~nost veoma mona tehnika za ubrzanje izvrenja slinih izraunavanja u nizu, pa se zbog toga esto koristi kod savremenih paralelnih arhitektura. Kada su u pitanju paralelni sistemi protonost se moe koristiti na sledea dva nivoa: a) na nivou procesora: mikro-nivo b) izmedju procesora ili vorova: makro-nivo Klasini primeri procesora koji koriste protonu obradu na mikro-nivou su vektor-procesori, skalarni procesori, superprotoni i superskalarni procesori, VLIW procesori, i dr. Tipini reprezenti procesora koji koriste protonu obradu na makro-nivou su komunikacioni procesori, MIMD maine i dr. B. Umnoavanje: drugi prirodan nain da se uvede paralelizam kod raunara je da se umnoe funkcionalne jedinice. Umnoene (replicirane) funkcionalne jedinice mogu istovremeno da obavljaju istu operaciju nad onoliko razliitih podataka koliko postoje razliite funkcionalne jedinice. Svi MIMD raunari, kao VLIW i superskalarni procesori da bi ostvarili paralelizam u radu koriste pristup umnoavanja funkcionalnih jedinica.
Protonost
takt Cp
instrukcije ... i+4 i+3 i+2 i+1 i t0 IF1 t1 IF2 ID1 t2 IF3 ID2 Ex1 t3 IF4 ID3 Ex2 WB1 t4 t5 t6 t7 t
Ex5 WB4
WB5
opkd
Rs1
Rs2
Rd
Protonost Funkcije koje pojedinano, u okviru protonog sistema FX-4P, obavljaju protoni stepeni S1 do S4 (vidi Sliku 1a)) su sledee: (1) S1-Pribavljanje instrukcije, IF (Instruction Fetch): na osnovu sadraja programskog brojaa, iz adresirane memorijske lokacije pribavlja se instrukcija (format instrukcije je prikazan na Slici 1c)) (2) S2-Dekodiranje instrukcije, ID (Instruction Decode): u toku ovog ciklusa obavljaju se sledee dve aktivnosti: (a) dekodira se opkod i inicijalizira proces interpretacije instrukcije; (b) na osnovu sadraja registarskih specifikatora (polja Rs1 i Rs2 koji odredjuju prvi i drugi izvorini operand instrukcije- vidi Sliku 1c) pribavljaju se (itaju) operandi iz internog registarskog polja CPU-a (internal register-file , tzv. RF polje). (3) S3-Izvrenje, EX (Instruction Execution): obavlja se operacija specificirana opkd poljem instrukcije. (4) S4- Upis rezultata, WB (Result Write Back): rezultat operacije upisuje se u odredini registar, specificiran Rd poljem sa Slike 1c). Rd registar je jedan od registara RF polja.
Napomena: Kod procesora FX-4P, na osnovu formata sa Slike 1c), uo ava se da su oba izvorina operanda, kao i odredini (specificirana poljima Rs1 i Rs2 i Rd, respektivno) registarska. To zna i da se ulazne vrednosti operacija dobavljaju iz RF polja, a takodje se i rezultat operacije upisuje u jedan od registara RF polja. O na inima kako se vri punjenje registra RF polja (operacija tipa Load-register) kao i upis sadraja registre u memoriju, tj. operacije tipa Store-register), ili kako se realizuje operacije tipa Branch i druge, govori emo neto kasnije.
Izvrenje instrukcije ini sekvenca akcija. Akcije se specificiraju semantikom instrukcija. U prethodnom poglavlju smo ukazali da se jedna akcija moe obaviti u toku trajanja jednog ili veeg broja ciklusa. Identifikovaemo sada karakteristine akcije koje se obino, u toku izvrenja instrukcije, izvravaju u sekvencijalnom redosledu. Drugim reima, ukazaemo na problem particije. Svaki protoni stepen se sastoji od kombinacione logike i/ili veoma brze memorije izvedene u formi registarskog polja ili ke memorije. Stepeni su medjusobno razdvojeni, kako je to prikazano na Slici 1, leevima, L1 do L4. Zajednikim taktnim signalom, Cp, vri se sinhronizacija rada sistema na taj nain to svi leevi istovremeno prihvataju podatke od strane protonih stepena. Zajednikim taktnim signalom Cp vri se ''pumpanje'' (tj. guranje) instrukcija kroz protoni sistem. Na poetku procesorskog ciklusa (taktnog perioda) podaci, i/ili upravljaka informacija iz delimino procesirane instrukcije, se pamti (uva) u le Li ( i = 1,..,4). Ovi podaci, i/ili upravljaka informacija, predstavljaju ulaz za logiku stepena Si koju le Li direktno pobudjuje. U toku taktnog perioda, signali se propagiraju kroz kombinacionu logiku, ili pristupaju veoma brzim memorijama stepena Si. Na kraju taktnog perioda procesirani signali se prihvataju od strane lea Li+1. Kada je protoni sistem dobro projektovan, svi stepeni sadre logiku sa priblino jednakim (izbalansiranim) vremenom propagacije signala. Taktni period treba da bude dovoljno dugaak i da njegovo trajanje odgovara najsporijem stepenu. Protoni stepen treba tako projektovati da poetak nove instrukcije (a takodje i kraj instrukcije) koincidira sa poetkom svakog novog taktnog perioda (Slika 1b)). Zbog toga, taktni period odredjuje propusnost (throughput), koja ukazuje na brzinu sa kojom se izvravaju instrukcije. Vreme koje je potrebno jednoj instrukciji da prodje kroz sve blokove protonog sistema zove se latencija (latency). Na primer, ako se protoni sistem sa Slike 2a taktuje sa frekvencijom od 100 MHz, tada je maksimalna propusnost jedna instrukcija na 10ns ili 100 MIPS-a, dok latentnost ovog protonog sistema iznosi 40ns.
Protonost
Protonost gde je prekoraenje usled Tri, tj. prekoraenje usled dodatnog vremena, svakog protonog stepena, potrebnog da se ostvari sinhronizovan rad. d) efikasnost protonog sistema koji obavlja izraunavanje (ili niz izraunavanja) se definie kao Eideal = Spro / n = (n * k) / ( n2 + n * k - n) za n = 5 i k = 10, E = 0,714; za n = 5 i k = 100, E = 0,962; za n = 5 i k = 1000, E = 0,996;
Format instrukcije Add (vidi Sliku 2b)) ine polja Rs1 = Rs2 = Rd svi obima po 5 bitova (RF polje ine 32 registra), opkd polje obima 6 bitova (mogue je kodirati do 64 razliite instrukcije) i polje ostalo veliine 11 bitova (interpretaciju ovih bitova za sada }emo zanemariti).
Protonost
memorija za instrukcije
adresa 32 (PC)
PC
+4 Inc 4
32
1. IF
instrukcija 32
(PC)+4
L1
Add R1 R2 5 R3 5 RF polje (multi32 32 ostalo
2. ID
port memory)
L2
Add R1 (R2) 32 6 5 dekoder ALU op add (R2)+(R3) ALU (R3) 32
3. EX
L3
R1 5 (R2)+(R3) 32
32
4. WB
reg-write
data-in
RF polje
multi-port polje
a) struktura FX-4P
6 opkd 5 Rd 5 Rs1 5 Rs2 11 ostalo
b) format instrukcije Slika 2. Izvrenje ALU instrukcije kod etvoro-stepenog protono organizovanog sistema FX-4P
Napomena: Gradivni blok RF polje prikazan u stepenima ID i WB je jedan isti blok. U sutini to je memorija sa veim brojem pristupa. itanje ovog polja se vri u stepenu ID, a upis u RF polje u stepenu WB.
Stepen IF prenosi kompletnu instrukciju u le L1. U stepenu ID pristupa se izvornim operandima instrukcije koji su locirani u RF polju i dobavljaju se vrednosti izvornih operanada (u konkretnom sluaju to su sadraji registara R2 i R3). Sadraji izvornih operanada zajedno sa opkdom instrukcije i polje odredini registar, R1, se upisuju u le L2, tj. predaju stepenu EX. Stepen EX prihvata ulazne vrednosti i 7
Protonost obavlja operaciju u zavisnosti od opkoda instrukcije, a rezultat zajedno sa poljem odredini registar prosledjuje leu L3. Stepen WB pristupa RF polju koristei odredinu adresu i upisuje (prenosi) rezultantnu vrednost (R2) + (R3) u odredini registar R1. Analizirajui Sliku 2 moemo da zakljuimo sledee: a) sadraj opkda polja instrukcije ostaje nepromenjen sve do stepena EX, tj opkd polju se jednostavno prenosi kroz stepene IF i ID. informacija o
b) na slian nain polje instrukcije kojim se specificira odredini registar, Rd (konkretno je to R1), se prenosi kroz stepene IF, ID i EX sve dok se njegov sadraj ne interpretira u stepenu WB, za potrebe selekcije registra R1 iz RF polja, radi upisa rezultata izraunavanja. Zadravajui nepromenjen sadraj odredjenih polja instrukcije, u toku prolaska te instrukcije kroz protone stepene mogue je insertovati nove instrukcije a da pri tome prethodne jo nisu zavrene. Isto tako se moe uoiti da u trenutku kada n-ta instrukcija vri upis u RF polje (n+2)-a instrukcija ita RF polje. Istovremeno operacije upis i itanje sadraja istog registra nisu dozvoljene, ali je dozvoljen istovremeni pristup razliitim registrima (RF polje je multiport memorija, koja u konkretnom sluaju (Slika 2) ima dva porta za itanje i jedan za upis).
1.4.2 Instrukcije tipa Load i Store Kod instrukcija tipa Load i Store u okviru aktivnosti koje obavljaju protoni stepeni vri se pristup memorijama za podatke. Saglasno ovome moe se izvesti jedan alternativni nain prikazivanja rada protonog sistema koji za odgovarajui protoni stepen u prvi plan postavlja pristup memoriji (keu) za podatke (vidi Sliku 3)
IF
M A R instrukciona memorija M D R
ID
memorija podataka RF polje ili ke
EX
I R
WB
M D R memorija podataka RF polje ili ke
ALU
a)
Protonost
procesor pribavljanje instrukcija ke za instrukcije pribavljanje podataka ke za podatke
glavna memorija
b) Slika 3. Alternativni nain prikazivanja rada protonog sistema u toku jedinstvenog procesorskog ciklusa
Napomena: MAR-memorijsko adresni registar; MDR-registar za uvanje podataka iz/ka memoriji; IR-instrukcioni registar.
Kao to se mo`e uo~iti sa Slike 3 u toku jednog procesorskog ciklusa memoriji za podatke istovremeno se pristupa na dva mesta, u stepenu ID i stepenu WB, a memoriji za instrukcije jedanput, u stepenu IF. Ovakav nain rada automatski sugerie da memoriju za instrukcije treba razdvojiti od memorije za podatke. Obino, na nivou sistema obe memorije se implementiraju kao ke-za-instrukcije i ke-za-podatke.(vidi Sliku 3 b)). Uobi~ajeno, dananji RISC procesori se realizuju kao Load/Store maine, pa je pogodno kod ovakvih maina da postoji jo jedan protoni stepen koji bi obavljao aktivnost tipa pristup-memoriji. Memorijske adrese za obe, Load i Store, operacije, izraunavale bi se putem registarsko indirektnog naina adresiranja. Ovakav pristup nalae da protoni sistem ine sledeih pet stepeni: S1: FI pribavljanje instrukcije S2: DI dekodiranje/pribavaljanje operanada iz RF polja S3: EX izvrenje ALU operacije ili izraunavanje efektivne adrese S4: MA pristup memoriji radi upisa podataka ili itanje memorijskog operanda S5: WB upis rezultata operacije u RF polje Stepen S3 se koristi za izraunavanje efektivne adrese instrukcije kojom se vri pristup memoriji, ili za obavljanje aritmetiko/logikih operacija kod instrukcija tipa regista-u-registar. Stepen S5 se ne koristi od strane instrukcija koje vre upis u memoriju (Store instrukcija). Na Slici 4 prikazan je nain korienja protonih stepena za instrukcije tipa Load, Store kao i aritmetiko/logikih. Sistem sa Slike 4 a) je peto-stepeni sa jednim stepenom namenjen za pristup memoriji. Kao to se vidi sa Slike 4 b) samo se instrukcija Load procesira u sva pet stepena; aritmetiko/logike instrukcije ne koriste usluge MA stepena (samo prolaze kroz njega bez procesiranja); instrukcija Store ne koristi usluge stepena WB. Treba ipak naglasiti da neiskoriavanje nekog od protonih stepena od strane odredjene instrukcije ne doprinosi smanjenju propusnosti sistema. Peto-stepeni protono organizovan sistem prikazan na Slici 4 a) naziva}emo ga u daljem tekstu procesor FX-5P.
Protonost
S1 IF
pribljavanje instrukcije
S2 ID
pribavljanje operanda iz RF polja
S3 EX
izvrsenje (izracunavanje)
S4 MA
pristup memoriji
S5 WB
upis rezultata u RF polje
a) jedinice
Load
IF
ID
EX
MA
WB
Store
IF
ID
EX
MA
aritmeticke/ logicke
IF
ID
EX
WB
b) iskorienost Slika 4. Peto-stepeni protoni sistem, FX-5P, sa jednim stepenom za pristup memoriji Na Slici 5a), ilustracije radi, prikazano je izvrenje instrukcije Lw R1, 100(R2) ; (R1) M(100+R2)
Format instrukcije Load prikazan je na Slici 5b). Aktivnosti koje se, kod FX-5P, preduzimaju su sledee: 1. u okviru stepena IF pribavlja se instrukcija i upisuje u le L1 2. u stepenu ID, na osnovu specifikacije adrese izvorinog registra R2, ita se iz RF polja sadraj registra R2 i upisuje u L2. Neposredna vrednost imm = 100 koja, u konkretnom sluaju, predstavlja 16-bitna konstanta, pomou specijalizovanog hardverskog bloka sign-ext znakovno se proiruje na 32 bita i upisuje u L2
3. U treem stepenu vri se dekodiranje opkd polja, tako da blok dekoder generie upravljaki signal ALU_op = add pomou koga se izdaje nalog ALU jedinici da sabere vrednosti oba ulazna operanda. Rezultat ALU-a je (R2)+100 i predstavlja izraunatu efektivnu adresu koja se upisuje u L3. 4. U etvrtom stepenu, MA, na osnovu efektivne adrese, pristupa se memoriji za podatke. Sa memorijske lokacije M(R2+100) ita se podatak koji se upisuje u le L4. 5. U zadnjem stepenu u registar R1 koji pripada RF polju upisuje se prethodno proitani sadraj dobavljen iz memorije podataka. 10
Protonost
memorija za instrukcije
adresa 32 (PC)
PC
+4 Inc 4
32
1. IF
instrukcija 32
(PC)+4
L1
Lw R1 R2 5 100 16 RF polje
2. ID
L2
Lw R1 (R2) 32 6 5
100 32
3. EX
dekoder
ALU_op add
ALU
L3
R1 5 (R2)+100 32 mem_Read_adr 32 data_out R1 M((R2)+100)
32
4. MA L4
memorija podataka
5. WB
5 reg_write
32 data_in
RF polje
b) Format instrukcije Load Slika 5. Izvrenje instrukcije Lw R1, 100(R2) Na Slici 6a) prikazan je nain izivrenja instrukcije Store (konkretnije Sw R4, 200(R3)) na procesoru FX-5P. Aktivnosti koje se preduzimaju u okviru izvrenja ove instrukcije su sledee: 11
Protonost 1. U okviru stepena IF pribavlja se instrukcija i upisuje u le L1 2. U stepenu ID obavljaju se sledee akcije: a) na osnovu specifikacije registarskih polja R4 i R3 itaju se odgovarajui sadraji registara iz RF polja i upisuju u le L2 b) 16-bitna neposredna vrednost imm = 200 znakovno se proiruje na 32 bita i upisuje u le L2 3. U okviru stepena EX dekodira se opkd instrukcije i ALU jedinici izdaje nalog za sabiranje ulaznih operanada. Izlaz ALU-a predstavlja efektivna memorijska adresa memorije podataka u koju treba upisati sadraj registra R4 4. U stepenu MA sadraj registra R4 upisuje se u memoriju podataka na lokaciji (R3) + 200.
12
Protonost
memorija za instrukcije
adresa 32 (PC)
PC
+4 Inc 4
32
1. IF
instrukcija 32
(PC)+4
L1
Sw R4 R3 reg_Read reg_Read data_out 200 5 5 data_out 16 RF polje
2. ID
L2
3. EX
L3
(R4) 32 (R3)+200 32
32
4. MA L4
data_in
mem_Write_adr
memorija podataka
5. WB
RF polje
13
Protonost
1.4.3 Instrukcija tipa Branch Instrukcije grananja (Branch) formiraju razliitu klasu instrukcija u odnosu na aritmetiko/logike i Load/Store instrukcije. Razlika se sastoji u tome to instrukcije tipa Branch upisuju novu vrednost u programski broja, PC. Instrukcije grananja mogu biti uslovne, pa ih tada nazivamo Bcc (Branch Conditional), ili bezulsovne, poznate kao Jump (Jump Unconditional). Format instrukcije Branch za uslovne i bezuslovne instrukcije grananja je jedinstven i oblika je kao na Slici 7.
6 opk d 11 cond <3..0> 5 rs 5 rt 16 cilj-adr
Slika 7. Format instrukcije Branch Jedna od interpretacije etvoro-bitnog polja cond koje je sastavni deo opkd polja je prikazana na Slici 8:
Cond:={ c<3..0>=0 0 ; ne granaj se nikad c<3..0>=1 1branch (granaj se) uvek na cilj_adr, instrukcija Jump ; c<3..0>=2 ; rs rt = 0; if rs rt = 0 branch na cilj_adr c<3..0>=3 ; rs rt if rs - rt branch na cilj_adr 0; 0 c<3..0>=4 ; rs rt > 0; if rs > rt branch na cil_adr c<3..0>=5 ; rs rt < 0; if rs < rt branch na cilj_asr
. . . . . .
Slika 8 Format instrukcije tipa Branch Polja rs i rt su registri ije se vrednosti uporedjuju, a polje cilj_adr predstavlja ciljnu adresu grananja. Spisak svih instrukcija tipa Branch prikazan je na Slici 9.
14
Protonost
Tip instrukcije nikad se ne granaj uvek se granaj (bezuslovni skok) granaj se ako je nula granaj se ako je nije nula granaj se ako je parnost parna granaj se ako je parnost neparna granaj se ako postoji prenos granaj se ako ne postoji prenos granaj se ako je negativan granaj se ako je pozitivan granaj se ako ima premasaj granaj se ako nema premaaj Mnemonik Marker uslova koji se testira -----
C<3..0>=0 C<3..0>=1 C<3..0>=2 C<3..0>=3 C<3..0>=6 C<3..0>=7 C<3..0>=8 C<3..0>=9 C<3..0>=10 C<3..0>=11 C<3..0>=12 C<3..0>=13
If {z}=1 go to cilj_adr else next_adr; If {z}=0 go to cilj_adr else next_adr; If {p}=1 go to cilj_adr else next_adr; If {p}=0 go to cilj_adr else next_adr; If {c}=1 go to cilj_adr else next_adr; If {c}=0 go to cilj_adr else next_adr; If {s}=1 go to cilj_adr else next_adr; If {s}=0 go to cilj_adr else next_adr; If {o}=1 go to cilj_adr else next_adr; If {o}=0 go to cilj_adr else next_adr;
Kombinacije C<3..0>=4 i 5 su rezervisane za Bgt (branch if greater then), i Bet (branch if less then), dok su ostale dve kombinacije ostavljene za budua proirenja
Slika 9. Spisak instrukcija tipa Branch Analizom Slike 9 moemo da zakljuimo sledee: bezuslovna instrukcija grananja Jump je specijalan sluaj instrukcije Branch instrukcija Jnev sa programerske take gledita nema smisla, ali je uvedena zbog jednostavnije realizacije hardvera za grananje
Na Slici 10 prikazano je izvrenje uslovne instrukcije grananja Bz R4, R0, 500 ; if R4 - R0 = 0 go to (PC) + 4 + 500, else next_adr
Instrukcija Br (branch zero) komparira sadraje registara R4 i R0. Za sluaj da su njihove vrednosti identine razlika e biti 0, i postavie se marker uslova Z = {1} . Ako je Z = {1} obavie se grananje na cilju adresu cilj_adr, a za sluaj da je Z = {0} izvrava se naredna instrukcija u sekvenci ( na adresu next_adr), tj. ona koja neposredno sledi iza instrukcije Bz. Uobiajena je praksa, da projektanti procesora uvek rezerviu registar R0 kao lokaciju gde se uva konstanta 0 (konstanta 0 se esto puta javlja u programima pa je bolje da se ona generie u okviru samog procesora, a ne da se dobavlja iz memorije kao neposredna vrednost ime se znaajno postie na ubrzanju programa). Implikacije ovakvog pristupa, na primer kod instrukcije Bz R4, R0, adr1, su sledee: 15
Protonost Razlika R4 - R0 jednaka je pravoj vrednosti registra R4 jer se oduzimanjem 0 nita ne menja, a postavljaju se samo markeri uslova kakvi su Z zero, S sign, P parity, O overflow, C carry, i dr. Aktivnosti koje su tipine za rad svakog od protonih stepena u toku izvrenja instrukcije Bz R4, R0, 500 su sledee: 1. u okviru aktivnosti stepena IF iz memorije se pribavlja opkd instrukcije Bz R4, R0, adr1 i upisuje u le L1. Dodatno u L1 upisuje se i stanje PC-a koje ukazuje na adresu naredne instrukcije u programu (tj. (PC)+4) 2. u okviru aktivnosti stepena ID obavlja se sledee: a) na osnovu specifikacije polja R4 i R0 iz odgovarajuih registara RF polja pribavljaju se sadraji (R4) i (R0), respektivno b) 16-bitno polje ciljna_adr = 500 znakovno se poriruje na 32 bita. Znakovno proirena vrednost upisuje se u le L2. 3. Protoni stepen EX obavlja sledee aktivnosti: Gradivni blok ALU_1&Select_Logika uporedjuje sadraj registra R4 i R0. Uporedjivanje se obavlja operacijom oduzimanja, (R4) - (R0). Ovu funkciju obavlja ALU_1. Kao rezultat oduzimanja postavljaju se markeri uslova (Z,S,P,C,O). Select_logika u zavisnosti od stanja markera uslova, kao i koji se od uslova testira, postavlja svoj izlaz Condition na vrednost True 1 (kada je uslov grananja ispunjen), ili False 0 (kada uslov grananja nije ispunjen). Izlaz Condition se dovodi na Sel multipleksera MUX koji je sastavni deo logike IF stepena, a koristi se da selektuje koji e se od ulaza MUX-a propustiti na njegov izlaz, tj. dovesti na ulaz PC-a. Kada se ulaz_0 MUX-a propusti na izlaz, program produava sa izvrenjem naredne instrukcije u sekvenci, a kada se ulaz-1 propusti na izlaz obavlja se grananje na adresi cilj_adr. ii) Gradivni blok ALU_2 obavlja sabiranje vrednosti (PC)+4 i znakovno pro{irenog razmetaja 500. To znai da protoni sistem koga analiziramo, kada je re o instrukcijama tipa Branch, podrava PC relativno adresiranje sa razmetajem. Vrednost na izlazu ALU_2 jednaka je cilj_adr = ((PC)+4) + 500, i odgovara adresi grananja za sluaj da je uslov grananja ispunjen 4. Protoni stepen MA ne obavlja nikakvu aktivnost 5. Protoni stepen WB ne obavlja nikakvu aktivnost. i)
16
Protonost
memorija za instrukcije
adresa 32 (PC)
PC +4 Inc 4
32
1. IF
instrukcija 32
M 1 U X 0 1
sel (PC)+4
L1
Bz R4 R0 reg_Read reg_Read data_out 6 data_out sign_ext 32 32 32 Bz (R4) 32 6 de ko de r D1 (R0) 32 de ko de r D2 32 ALU_op add 500 500 16 5 5
32 (PC)+4
2. ID
RF polje 32
L2
(PC)+4 32
3. EX
ALU_op sub
ALU_2
32
L3
4. MA
L4
5. WB
RF polje
17