computer organisation

28
1 2. Arhitektura skupa instrukcija procesora Nebojša Milenković Elektronski fakultet u Nišu Notacija korišćena u knjizi Nota- cija Značenje Primer Značenje Prenos podatka. Dužina prenošenog podatka određena je dužinom odredišta. Kada nije očigledna, dužina mora biti navedena. R1 R2 Preneti sadržaj R2 u R1. Dužina registara je fiksna, tako da prenos podatka kraćeg od dužine registara mora ukazati koji se bitovi prenose. M Polje memorijskih lokacija u bajtovima kojima se pristupa. R1 M[x] Preneti sadržaje memorijskih lokacija M Početna adresa prenosa navodi se kao indeks u ovom polju. R1 M[x] M[x], M[x+1], M[x+2], M[x+3] u R1. n Prenos n - to bitnog polja; navodi se kad god dužina prenošenog podatka nije očigledna. M[y] 16 M[x] Preneti 16 bitova počev od memorijske lokacije x u memorijsku lokaciju y. Dužine izvora i odredišta moraju biti istovetne. X n Indeks određuje bit R1 31 0 Obrisati bit znaka R1. X m..n Indeks određuje polje bitova. R3 7..0 M[x] Preneti sadržaj memorijske lokacije x u najniži bajt R3. X n Eksponent ukazuje na broj pojavljivanja bita x u polju R3 31..8 0 24 Obrisati tri viša bajta R3. N. Milenković, Arhitektura i organizacija računara 2011 Notacija korišćena u knjizi Nota- cija Značenje Primer Značenje Povezuje dva polja R3 0 24 M[x] F2F3 64 M[x] Preneti sadržaj lokacije M[x] u najniži bajt R3 i obrisati tri viša bajta; Preneti 64 bita iz memorije počev od lokacije x; prva 32 bita idu u F2, druga 32 bita idu u F3. Indirekcija pokazivača; Dodeliti objektu na koji pokazuje P *, & Indirekcija pokazivača; dobija adresu promenljive P* &x Dodeliti objektu na koji pokazuje P adresu promenljive x. << , >> Logičko pomeranje (levo, desno). R1 << 5 Pomeriti R1 ulevo 5 bitova. ==,!=, >,<, ,Relacioni operatori: jednako, različito, veće, manje, veće ili jednako, manje ili jednako (R1 == R2) (R3 != R4) Istinito ako su sadržaji R1 i R2 jednaki i sadržaji R3 i R4 različiti. (,),, Logičke bit po bit operacije: I, ILI, Isključivo ILI i NE. (R1(R2R3)) Logička I operacija između sadržaja R1 i rezultata logičke ILI operacije između sadržaja R2 i R3. N. Milenković, Arhitektura i organizacija računara 2011 Tipovi arhitektura procesora Prema mestu privremenog čuvanja operanada, arhitekture procesora dele se na : • akumulatorsku arhitekturu, • arhitekturu sa registrima opšte namene. N. Milenković, Arhitektura i organizacija računara 2011 Akumulatorska arhitektura • Akumulatorska arhitektura odlikuje se postojanjem u procesoru jednog registra, nazvanog akumulator (engl. accumulator, skr. ACC), koji učestvuje u svim operacijama procesora svim operacijama procesora. • Tipična instrukcija ovakvog procesora i njeno dejstvo je ADD adr : ACC ACC + M[adr] N. Milenković, Arhitektura i organizacija računara 2011 Saobraćaj akumulatora sa memorijom • Prvi operand se iz memorije prenosi u akumulator instrukcijom Load LD adr ACC M[adr] LD adr ACC M[adr] • a rezultat operacije se iz akumulatora šalje u memoriju instrukcijom Store ST adr M[adr] ACC N. Milenković, Arhitektura i organizacija računara 2011

Upload: komsha18300

Post on 23-Dec-2015

224 views

Category:

Documents


1 download

DESCRIPTION

Hardware

TRANSCRIPT

Page 1: Computer organisation

1

2. Arhitektura skupa instrukcija procesora

Nebojša MilenkovićElektronski fakultet u Nišu

Notacija korišćena u knjiziNota-cija Značenje Primer Značenje

Prenos podatka. Dužina prenošenog podatka određena je dužinom odredišta. Kada nije očigledna, dužina mora biti navedena.

R1 ← R2

Preneti sadržaj R2 u R1. Dužina registara je fiksna, tako da prenos podatka kraćeg od dužine registara mora ukazati koji se bitovi prenose.

M

Polje memorijskih lokacija u bajtovima kojima se pristupa. R1 ← M[x] Preneti sadržaje memorijskih lokacija M Početna adresa prenosa navodi se kao indeks u ovom polju.

R1 ← M[x] M[x], M[x+1], M[x+2], M[x+3] u R1.

←n

Prenos n - to bitnog polja; navodi se kad god dužina prenošenog podatka nije očigledna.

M[y] ←16 M[x]

Preneti 16 bitova počev od memorijske lokacije x u memorijsku lokaciju y. Dužine izvora i odredišta moraju biti istovetne.

Xn Indeks određuje bit R131 ← 0 Obrisati bit znaka R1.

Xm..nIndeks određuje polje bitova. R37..0 ← M[x] Preneti sadržaj memorijske lokacije x u

najniži bajt R3.

XnEksponent ukazuje na broj pojavljivanja bita x u polju

R331..8 ← 024 Obrisati tri viša bajta R3.

N. Milenković, Arhitektura i organizacija računara 2011

Notacija korišćena u knjizi

Nota-cija Značenje Primer Značenje

║ Povezuje dva polja R3 ← 024║M[x]F2║F3 ←64 M[x]

Preneti sadržaj lokacije M[x] u najniži bajt R3 i obrisati tri viša bajta;Preneti 64 bita iz memorije počev od lokacije x; prva 32 bita idu u F2, druga 32 bita idu u F3.

Indirekcija pokazivača; Dodeliti objektu na koji pokazuje P*, & Indirekcija pokazivača; dobija adresu promenljive P* ← &x Dodeliti objektu na koji pokazuje P

adresu promenljive x.

<< , >>

Logičko pomeranje (levo, desno). R1 << 5 Pomeriti R1 ulevo 5 bitova.

==,!=,>,<, ≥,≤

Relacioni operatori: jednako, različito, veće, manje, veće ili jednako, manje ili jednako

(R1 == R2) ∧(R3 != R4)

Istinito ako su sadržaji R1 i R2 jednaki i sadržaji R3 i R4 različiti.

(∧,⋅),∨,⊕,¯

Logičke bit po bit operacije: I, ILI, Isključivo ILI i NE.

(R1∧(R2∨R3))Logička I operacija između sadržaja R1 i rezultata logičke ILI operacije između sadržaja R2 i R3.

N. Milenković, Arhitektura i organizacija računara 2011

Tipovi arhitektura procesora

Prema mestu privremenog čuvanjaoperanada, arhitekture procesora delese na :

• akumulatorsku arhitekturu,• arhitekturu sa registrima opšte namene.

N. Milenković, Arhitektura i organizacija računara 2011

Akumulatorska arhitektura• Akumulatorska arhitektura odlikuje se

postojanjem u procesoru jednogregistra, nazvanog akumulator (engl.accumulator, skr. ACC), koji učestvuje usvim operacijama procesorasvim operacijama procesora.

• Tipična instrukcija ovakvog procesora injeno dejstvo jeADD adr : ACC ← ACC + M[adr]

N. Milenković, Arhitektura i organizacija računara 2011

Saobraćaj akumulatora sa memorijom

• Prvi operand se iz memorije prenosi uakumulator instrukcijom LoadLD adr ACC ← M[adr]LD adr ACC ← M[adr]

• a rezultat operacije se iz akumulatorašalje u memoriju instrukcijom StoreST adr M[adr] ← ACC

N. Milenković, Arhitektura i organizacija računara 2011

Page 2: Computer organisation

2

Arhitekture sa registrima opšte namene

• Arhitekture sa registrima opšte namenesadrže grupu registara procesora koji se mogu koristiti u različite svrhe:

• za privremeno čuvanje operanada• za privremeno čuvanje operanada, • za učešće u izvršavanju operacija, • za adresiranje operanada u memoriji, • za prenos parametara pri pozivu

procedura i vraćanju rezultata itd.

N. Milenković, Arhitektura i organizacija računara 2011

Podtipovi ove arhitekture

• Prema mogućnostima kombinovanjakorišćenja registara i memorije začuvanje operanada instrukcija,

hit kt i t i štarhitekture sa registrima opšte namenedele se na:· registarsko-registarsku arhitekturu,· registarsko-memorijsku arhitekturu, i· registarsko + memorijsku arhitekturu.

N. Milenković, Arhitektura i organizacija računara 2011

Primer 2.1

• Za navedene tipove arhitektura napisati programe za izračunavanje vrednosti p g jizraza D=A+B×C .

N. Milenković, Arhitektura i organizacija računara 2011

Programi za sva četiri tipa arhitektura

Akumulator. arhitektura

Reg - memarhitektura

Reg - regarhitektura

Reg + memarhitektura

LD B LD R1, B LD R1, B MOV D, BMUL C MUL R1, C LD R2, C MUL D, CADD A ADD R1, A MUL R1, R2 ADD D, A

ST D ST D, R1 LD R2, A

ADD R1, R2

ST D, R1

N. Milenković, Arhitektura i organizacija računara 2011

ADRESNOST PROCESORA

U slučaju binarne operacije (operacije nad parom operanada) procesoru se instrukcijom moraju dostaviti:

• informacija o operaciji koju treba da izvrši, u j p j j ,vidu koda operacije (KOp),

• oba izvorišna operanda ili informacije o mestima odakle ih može uzeti,

• informacija o mestu gde treba da pošalje rezultat (odredišni operand), i

• adresa sledeće instrukcije programa.

N. Milenković, Arhitektura i organizacija računara 2011

Uvođenje programskog brojača• Umesto da se u svakoj instrukciji navodi

adresa sledeće instrukcije, koristi se rešenje da se adresa sledeće instrukcije drži u posebnom registru, nazvanom programski brojač (engl programprogramski brojač (engl. program counter, skraćeno PC).

• Neki proizvođači računara koriste termin “Instruction Address Register” ili “Instruction Pointer”, što je primerenije ulozi tog registra.

N. Milenković, Arhitektura i organizacija računara 2011

Page 3: Computer organisation

3

Formati instrukcija

N. Milenković, Arhitektura i organizacija računara 2011

Troadresni i dvoadresni format

• Troadresni format instrukcija. Dejstvo troadresne instrukcije pri izvršenju operacije ⊗, sa Op2 i Op3 kao izvorišnim operandima i Op1 kao p podredišnim operandom je Op1← Op2 ⊗ Op3

• Dvoadresni format instrukcijaOp1← Op1 ⊗ Op2

N. Milenković, Arhitektura i organizacija računara 2011

Jednoadresni i nulaadresni format

• Jednoadresni format instrukcijaACC ← ACC ⊗ Op

• U nulaadresnom formatu instrukcijajne navodi se eksplicitno ni jedan operand.

N. Milenković, Arhitektura i organizacija računara 2011

REGISTRI PROCESORA

• Računar pored korisničkih izvršava i sistemske programe. Programe korisnika računar izvršava u takozvanom korisničkom načinu radatakozvanom korisničkom načinu rada(engl. user mode), a sistemske programe u kernel načinu rada (engl. kernel mode) ili supervizorskom načinu rada (engl. supervisor mode).

N. Milenković, Arhitektura i organizacija računara 2011

Uvek prisutni registri

Svi procesori, nezavisno od arhitekture skupa instrukcija i adresnosti procesora, imaju sledeće registre:

• Programski brojač PC, • Registar instrukcija (označavaćemo ga sa IR,

engl. Instruction Register),• Adresni registar memorije (označavaćemo ga

sa MAR, engl. Memory Address Register),• Prihvatni registar memorije (označavaćemo

ga sa MDR, engl. Memory Data Register).

N. Milenković, Arhitektura i organizacija računara 2011

Korisnički vidljivi registri

• Skup registara dostupnih aplikacionom programeru čine registri na čiji sadržaj on može direkno uticati instrukcijama jkoje mu stoje na raspolaganju. Ovi registri nazivaju se i korisnički vidljivi registri.

N. Milenković, Arhitektura i organizacija računara 2011

Page 4: Computer organisation

4

Registri opšte namene• Registri opšte namene (engl. general

purpose registers) čine najbrojniju grupu registara.

• Njihov broj u procesorima kreće se od 8 do 64do 64.

• Ovi registri grupisani su u polje registara(engl. register file), sa zajedničkim ulaznim i izlaznim priključcima i pridruženom logikom, takozvanim portovima (engl.port).

N. Milenković, Arhitektura i organizacija računara 2011

FP registri• FP registri (engl. Floating Point registers) čine

grupu registara za rad sa realnim podacima u formatu sa pokretnom zapetom. Dužine su 32 ili 64 bita, jer to određuje standard za rad sa ovim podacima koji danas prihvataju sviovim podacima, koji danas prihvataju svi proizvođači računara.

• I ovi registri grupišu se u polje FP registara, sa više ulaznih i izlaznih portova.

• Broj FP registara u procesorima kreće se od 4 do 32.

N. Milenković, Arhitektura i organizacija računara 2011

Posebni adresni registri• Neke arhitekture predviđaju posebne

adresne registre, koji prema svojoj nameni pri adresiranju mogu biti bazni registri, indeksni registri, segmentni registri i drugiregistri i drugi.

• Segmentni registri adresiraju segmente memorije dodeljene programima, podacima, steku itd. (npr. u Intelovoj IA-32 arhitekturi).

N. Milenković, Arhitektura i organizacija računara 2011

Registar koda uslova

• Posebni registri namenjeni upravljanju tokom programa su takođe prisutni u nekim arhitekturama. Najčešće sretani jregistar ovog tipa je registar koda uslova ili registar uslova (engl. Condition Code Register, skr. CCR). On objedinjuje veći broj indikatora (engl. flags).

N. Milenković, Arhitektura i organizacija računara 2011

IndikatoriU sastavu CCR-a najčešće su prisutni sledeći

indikatori:• SF (Sign Flag) - indikator znaka, postavlja se ako je

rezultat negativan,• ZF (Zero Flag) - indikator nule, postavlja se ako je

rezultat nula,• CF (Carry Flag) - indikator prenosa, postavlja se akoCF (Carry Flag) indikator prenosa, postavlja se ako

se javi prenos,• OF (Overflow Flag) - indikator prekoračenja, postavlja

se ako rezultat prekorači kapacitet formata,• PF (Parity Flag) - indikator parnosti, postavlja se ako

je rezultat paran,• AF (Auxiliary Carry Flag) - indikator pomoćnog

prenosa, postavlja se ako se javi prenos iz četvorobitne grupe pri sabiranju BCD brojeva, i drugi.

N. Milenković, Arhitektura i organizacija računara 2011

Registar statusa programa

• U nekim arhitekturama navedeni indikatori iz registra uslova uključeni su u registar poznat kao registar statusa programa (engl. Program Status Word, skr PSW) Pored ovih indikatora PSWskr. PSW). Pored ovih indikatora PSW sadrži i druge elemente stanja procesora koji se iz programa korisnika mogu modifikovati, kao što su bitovi dozvole trapova u FP operacijama, način zaokruživanja rezultata u FP operacijama, bit trapa trasiranja i drugi.

N. Milenković, Arhitektura i organizacija računara 2011

Page 5: Computer organisation

5

Sistemski registri

• Sistemski registri učestvuju u upravljanju prekidima i izuzecima, prevođenju sistema iz supervizorskog u korisnički način rada i obrnuto, prevođenju virtuelnih u fizičke adrese, upravljanju keš memorijama, sakupljanju podataka o korišćenju resursa p j j p jsistema itd.

• Za svaku od podržanih aktivnosti sa ovog spiska, arhitektura predviđa jedan ili više registara.

• Ovim registrima može se pristupati samo pri kernel ili supervizorskom načinu rada sistema.

N. Milenković, Arhitektura i organizacija računara 2011

OSNOVNI FUNKCIONALNI

BLOKOVI PROCESORA

Ke{ memorijaza instrukcije

Sprega sasistemom

Spolja{nja magistrala

Ke{ memorija za podatke

Izra~unavanje adresa

Load-Store jedinica

Upravljanjememorijom

Poljecelobroj.registara

Polje FP.registara

Pribavljanje instrukcija

Dekodiranje instrukcija

Predvi|anje grananja

Upravlja~ka jedinica

Celobrojneoperacione jedinice

FPoperacione jedinice

NAČINI ADRESIRANJA

• Mesta u računaru gde se operandi mogu naći su:

• sama instrukcijasama instrukcija,• neki od registara procesora, i • neka lokacija memorije.

N. Milenković, Arhitektura i organizacija računara 2011

Adresiranje operanada

• Pošto se lokacije glavne memorije računara označavaju numeričkim oznakama (adresama), a ista situacija je i sa registrima

d d fi i j t l ž jprocesora, onda definisanje mesta nalaženja operanada nazivamo adresiranjem operanada.

• Evo primera na kome se mogu sagledati neki od problema vezanih za adresiranje operanada.

N. Milenković, Arhitektura i organizacija računara 2011

Primer segmenta programa

• Neka na osnovu datog vektora B treba formirati vektor A korišćenjem skalara C na osnovu sledećeg postupka:

for (j=1; j≤100; j=j+1) {for (j=1; j≤100; j=j+1) {A(j) = B(j) + C

}• Razmotriti mogućnosti za adresiranje

operanada koji se pojavljuju u ovom postupku.

N. Milenković, Arhitektura i organizacija računara 2011

Zahtevi za efikasno adresiranje

• Postavimo sledeće zahteve:z1. za navođenje adresa operanada u

instrukcijama koristiti što kraća adresna polja,z2. obezbediti pristup operandima za što

kraće vreme ikraće vreme, iz3. u instrukcijama kojima se pristupa

operandima B i A, navođenje adresa ovih operanada mora ostati nepromenjeno pri promeni komponenata vektora (zabrana samomodifikovanja programa u toku izvršenja).

N. Milenković, Arhitektura i organizacija računara 2011

Page 6: Computer organisation

6

Dve vrste adresa operanada

Ovakvi zahtevi i moguća rešenja uvode potrebu za razlikovanjem dve vrste adresa.

• Adrese operanada koje se navode u instrukcijama su primarne adrese operanada(a i ) U toku izvršenja programa one se ne(aprim). U toku izvršenja programa one se ne smeju menjati.

• Adrese operanada na osnovu kojih se direktno pristupa operandima su efektivne adrese operanada (aef). U toku izvršenja programa one se mogu menjati.

N. Milenković, Arhitektura i organizacija računara 2011

Šta su načini adresiranja?

• Efektivne adrese operanada dobijaju seodređenim transformacijama (ili modifikacijama) primarnih adresa operanada.

• Pod načinima adresiranja (eng. addressing modes) podrazumevamo načine za navođenje primarnih adresa operanada u instrukcijama i transformacije ovih adresa u efektivne adrese operanada.

N. Milenković, Arhitektura i organizacija računara 2011

Neposredno adresiranje

• Kada se operand nalazi u sastavu same instrukcije imamo neposredno adresiranje (eng immediateadresiranje (eng. immediate addressing).

• Pri pribavljanju instrukcije pribavlja se i operand, i on je raspoloživ za obradu bez dodatnih aktivnosti.

N. Milenković, Arhitektura i organizacija računara 2011

Neposredno adresiranje

• U ovom slučaju primarna i efektivna adresa j poperanda određene su sadržajem programskog brojača PC.aprim = aef = PC

• Označavanje znakom # napisanim ispred vrednosti operanda.Primer : #Konst ili #5.

N. Milenković, Arhitektura i organizacija računara 2011

Registarsko adresiranje

• Registarsko adresiranje (engl. register addressing) imamo kada je operand prisutan u nekom registru Rj procesora. I primarna i efektivna adresa operanda je adresa registra Rjje adresa registra Rj aprim = aef = Rj

• Za adresiranje operanada u registrima potrebno je od 3 do 6 adresnih bitova.

N. Milenković, Arhitektura i organizacija računara 2011

Registarsko adresiranje

• Registarsko adresiranje označavaćemo tako što u adresnom polju operanda navodimo samo oznaku Rj registra koji sadrži operand.Primer : R4.

N. Milenković, Arhitektura i organizacija računara 2011

Page 7: Computer organisation

7

Registarsko indirektno adresiranje

• Registarsko indirektno adresiranje (engl. register indirect addressing) imamo kada je operand u memoriji adresiran sadržajem nekog registra opšte namene Rj.

• U adresnom polju operanda u instrukciji navodimo registar Rj.

• aprim = Rj, aef = (Rj)

N. Milenković, Arhitektura i organizacija računara 2011

Registarsko indirektno adresiranje

• Za ovaj način adresiranja neki proizvođači računara koriste termin registarsko odloženo adresiranje (engl. register deferred). Označavanje parom malih zagrada između kojih navodimo registar Rj.Primer : (R7).

N. Milenković, Arhitektura i organizacija računara 2011

Direktno adresiranje• Direktno adresiranje (engl. direct addressing)

imamo kada je operand u memoriji adresiran punom adresom adr navedenom u odgovarajućem adresnom polju instrukcije za taj operand.

• Primarna i efektivna adresa operanda suPrimarna i efektivna adresa operanda su istovetne.aprim = aef = adr

• Direktna adresa mora imati dovoljnu dužinu da omogući adresiranje lokacija unutar celog adresnog prostora memorije ili nekog njegovog dela.

N. Milenković, Arhitektura i organizacija računara 2011

Direktno adresiranje

• Za ovaj način adresiranja neki proizvođači računara koriste termin apsolutno adresiranje(engl. absolute addressing).

• Označavanje navođenjem direktne adrese između para malih zagrada.Primer: (1200).

N. Milenković, Arhitektura i organizacija računara 2011

Bazno adresiranje

• Bazno adresiranje (engl. base addressing) imamo kada je operand u memoriji adresiran zbirom sadržaja baznog registra BR i pomeraja (engl. di l t) ddisplacement) navedenog u odgovarajućem adresnom polju instrukcije za taj operand.

• Kao bazni registar najčešće se koristi neki od registara opšte namene.

N. Milenković, Arhitektura i organizacija računara 2011

Bazno adresiranje

• Pomeraj predstavlja adresu lokacije relativnu u odnosu na sadržaj baznog registra.

• Dužina r pomeraja određuje veličinu područja adresa L = 2r unutar kojeg sepodručja adresa L = 2 , unutar kojeg se lokacijama može pristupati sa nepromenjenim sadržajem baznog registra.

N. Milenković, Arhitektura i organizacija računara 2011

Page 8: Computer organisation

8

• Primarna adresa sadrži dve komponente: adresu baznog registra BR i pomeraj.

• Efektivna adresa operanda je zbir sadržaja baznog registra BR i pomeraja. aprim = BR, pomeraj ;aef = (BR) + pomeraj

N. Milenković, Arhitektura i organizacija računara 2011

Bazno adresiranje

• Bazno adresiranje omogućuje jednostavnu implementaciju relokativnosti podataka u memoriji. Relokativnost je mogućnost da se podacima dodeli bilo koje područje memorije, koje se može menjati i u toku samog izvršenja programa. Z j či d i j ki i đ či• Za ovaj način adresiranja neki proizvođači računara koriste termin pomerajno adresiranje (engl. displacement addressing).

• Označavanje navođenjem pomeraja ispred oznake baznog registra između para malih zagrada.Primer : 25(R4).

N. Milenković, Arhitektura i organizacija računara 2011

Indeksno adresiranje

• Indeksno adresiranje (engl. index addressing) imamo kada je operand u memoriji adresiran zbirom sadržaja registara Rj i Rk.

• Pri tome registar Rj sadrži početnu adresu područja u memoriji dodeljenog nekojpodručja u memoriji dodeljenog nekoj strukturi podataka, a Rk je indeksni registar koji sadrži indeks nekog elementa u toj strukturi.

• U adresnom polju operanda u instrukciji navodimo oba registra, Rj i Rk.

N. Milenković, Arhitektura i organizacija računara 2011

Indeksno adresiranje

• aprim = Rj, Rk; aef = (Rj) + (Rk) • Označavanje parom malih zagrada između

kojih navodimo registre Rj i Rk povezane znakom +. Primer : (R7+R4).

N. Milenković, Arhitektura i organizacija računara 2011

Memorijsko indirektno adresiranje

• Memorijsko indirektno adresiranje (engl. memory indirect addressing) imamo kada registar Rj, naveden u odgovarajućem adresnom polju instrukcije za taj operand, adresirainstrukcije za taj operand, adresira memorijsku lokaciju, koja svojim sadržajem adresira operand u memoriji.

• Memorijska lokacija M[Rj] je pokazivačna operand u memoriji.aprim = Rj ; aef = (M[Rj])

N. Milenković, Arhitektura i organizacija računara 2011

Memorijsko indirektno adresiranje

• Označavanje znakom @ ispred para malih zagrada između kojih je navedena oznaka registra ili memorijska adresa.Primer : @(R8) ili @(1200).

N. Milenković, Arhitektura i organizacija računara 2011

Page 9: Computer organisation

9

Autoinkrementno adresiranje

• Autoinkrementno adresiranje (engl. autoincrement addressing) izvedeno je iz indirektnog registarskog adresiranja dodavanjem inkrementiranja korišćenog registra Rj posle (ili pre) obraćanjaregistra Rj posle (ili pre) obraćanja memoriji.

• Registar Rj se može inkrementirati vrednošću d, određenom dužinom (npr. u bajtovima) elemenata kojima se pristupa.

N. Milenković, Arhitektura i organizacija računara 2011

Autoinkrementno adresiranje

• aprim = Rj ; aef = (Rj), Rj ← Rj+d• Označavanje navođenjem oznake korišćenog

registra između malih zagrada, dodavanjemsufiksa +. Primer : (R3)+.

N. Milenković, Arhitektura i organizacija računara 2011

Autodekrementno adresiranje• Autodekrementno adresiranje (engl.

autodecrement addressing) slično je autoinkrementnom adresiranju, od koga se razlikuje u dva detalja: korišćeni registar Rj se dekrementira, i to pre (ili posle) obraćanja memorijimemoriji.

• aprim = Rj ; Rj ← Rj−d, aef = (Rj)• Označavanje navođenjem oznake korišćenog

registra između malih zagrada, dodajući prefiks −. Primer : −(R3).

N. Milenković, Arhitektura i organizacija računara 2011

PC relativno adresiranje

• U instrukcijama grananja i skokova često se za određivanje odredišta grananja i skokova koristi adresiranje relativno u odnosu na programski brojač ili PC relativno adresiranje(engl. PC relative addressing). ( g g)

• Pri ovom načinu adresiranja, u adresnom delu instrukcije navodi se otklon (engl offset) ili pomeraj, koji predstavlja razliku između adrese odredišta grananja (skoka) i trenutnog sadržaja programskog brojača PC.

N. Milenković, Arhitektura i organizacija računara 2011

PC relativno adresiranje• Pri tome, “trenutni sadržaj programskog

brojača PC” može biti adresa tekuće instrukcije grananja ili adresa sledeće sekvencijalne instrukcije u programu. Otklon može imati pozitivan ili negativan znak.

• PC relativnim adresiranjem obezbeđuje se upravljanje izvršenjem programa nezavisno od dodele memorije programu. aprim = otklon ; aef = (PC) + otklon

ili aef = (PC+L) + otklon.U drugom obliku efektivne adrese L je dužina

instrukcije grananja (skoka).

N. Milenković, Arhitektura i organizacija računara 2011

PC relativno adresiranje

• Ovaj način adresiranja odredišta grananja određen je kodom operacije instrukcije, i podrazumeva se u ovakvim instrukcijama.

• Kada se upotrebljeni način adresiranja podrazumeva, kažemo da imamo implicitno adresiranje.

N. Milenković, Arhitektura i organizacija računara 2011

Page 10: Computer organisation

10

Načinadresiranja

Primerinstrukcije Značenje Kada se koristi

Registarsko Add R4, R3 R4 ← R4 + R3 Kada su operandiu registrima.

Neposredno Add R4, #3 R4 ← R4 + 3 Za konstante.

Bazno ilipomerajno Add R4,100(R1) R4 ←

R4 + M[100+R1]Za pristupanje lokalnimpromenljivim.

Registarskoindirektno iliodloženo

Add R4, (R1) R4 ← R4 + M[R1]Pristupanje korišćenjempokazivača ili izračunateadrese.

Indeksno Add R3 ← Pri adresiranju polja: R1-početak polja R2 indeksniIndeksno R3, (R1+R2) R3 + M[R1+R2] početak polja, R2-indeksniiznos.

Direktno iliapsolutno Add R1, (1200) R1 ←

R1 + M[1200]Za pristupanje statičkimpodacima.

Memorijskoindirektno iliodloženo

Add R1, @(R3) R1 ←R1 + M[M[R3]]

Ako je (R3) adresapokazivača P, ovo dajeoperand adresiran sa P.

Auto-inkrementno Add R1, (R2)+ R1 ← R1+ M[R2]

R2 ← R2 + d

Za prolaz kroz poljeelemenata unutar petlje; dje dužina elemenata polja.

Auto-dekrementno Add R1, −(R2) R2 ← R2 − d

R1 ← R1+ M[R2] Kao autoinkrementno.

N. Milenković, Arhitektura i organizacija računara 2011

Primer 2.2• Dvoadresni računar ima 32 registra opšte

namene dužina 32 bita. Adresni prostor memorije je 232 bajta. Instrukcije punjenja i pamćenja, uz upotrebu baznog adresiranja, prikazane su formatom 1 na slici 2.5 . U diti k išć j b d i j iUporediti korišćenje baznog adresiranja i direktnog adresiranja pod sledećim uslovima.

Op Oprs

6 65 55 516 32

rd rdpom

Format 1 Format 2

adr

N. Milenković, Arhitektura i organizacija računara 2011

Primer 2.2

• U okviru nekog programa procesor se n puta obraća različitim, proizvoljno razmeštenim memorijskim lokacijama unutar područja

ij d ži 64 KB D fi i ti f tmemorije dužine 64 KB. Definisati format instrukcija punjenja i pamćenja za slučaj direktnog adresiranja operanada u memoriji. Oceniti koji je način adresiranja, bazno ili direktno adresiranje, efikasniji sa stanovišta memorijskog prostora i vremena.

N. Milenković, Arhitektura i organizacija računara 2011

Rešenje 2.2

LUI R5, # Poc.v R5← Poc.v ║016;ORI R5,# Poc.n R5← R5 ∨ 016║Poc.n• U ovim instrukcijama Poc.v i Poc.n su

viša i niža polureč adrese Pocviša i niža polureč adrese Poc. • Iza ovoga, svako obraćanje procesora

memoriji vrši se instrukcijama LW Ri, pom(R5) i SW Ri, pom(R5), i≠5.

N. Milenković, Arhitektura i organizacija računara 2011

Rešenje 2.2

• U slučaju direktnog adresiranja koristimo instrukcije

LW Ri, (adr) sa dejstvom Ri←M[adr] iSW Ri, (adr) sa dejstvom M[adr] ←32 Ri• Broj bitova potrebnih za bazno adresiranje je

K1 = 2⋅32+n(5+16) = 21⋅n+64, • a za direktno adresiranje

K2 = n⋅32 = 32⋅n bitova. (Ovde nije uračunato neiskorišćeno polje od 5 bitova u

formatu 2.)

N. Milenković, Arhitektura i organizacija računara 2011

Rešenje 2.2

• Bazno adresiranje je efikasnije u pogledu memorijskog prostora za 21⋅n+64 ≤ 32⋅n, 11⋅n ≥ 64, n ≥ 6.

• Bolja efikasnost baznog u odnosu na direktno

n 10 100 1000 10000

EM 16,8% 47,9% 51,9% 52,3%

adresiranje, iskazana procentima je EM =[(K2 − K1) / K1]×100 =

[(11n−64) / (21n+64)]×100

N. Milenković, Arhitektura i organizacija računara 2011

Page 11: Computer organisation

11

Kodiranje skupa instrukcija

• Procesor može direktno izvršavati samo binarno kodirane instrukcije.

• Naprimer, u MIPS32™ arhitekturi, 32-bitni binarni broj001100 00101 00011 0000111100001111

predstavlja instrukciju ANDI R5, R3, #0x0F0F ,

čije je dejstvoR5 ← R3 AND 0x00000F0F .

N. Milenković, Arhitektura i organizacija računara 2011

Formati instrukcija• Izabrani načini za binarno kodiranje

elemenata instrukcija definišu formate instrukcija.

• Formati instrukcija definišu dužine instrukcija i podelu instrukcija na odgovarajuća polja, koja sadrže kodove operacija i adrese operanada ili same operandeili same operande.

• Po jedan format instrukcija uvodi se za podskup instrukcija sa elementima koji se mogu predstaviti na isti način.

• Broj različitih formata instrukcija kreće se od 3 (za RISC procesore sa jednostavnom arhitekturom) preko 6 (u IBM S/370) do 7 (u Intelovoj 80X86 arhitekturi).

N. Milenković, Arhitektura i organizacija računara 2011

Kod operacije

• Kod operacije (KOp ili Op) mora imati dovoljno različitih kodnih slogova da jednoznačno identifikuje svaku instrukciju iz k i t k ijskupa instrukcija procesora.

• Polje koda operacije može biti iste dužine za sve instrukcije, ili može imati različite dužine za određene podskupove instrukcija.

N. Milenković, Arhitektura i organizacija računara 2011

Primer 2.3

• Instrukcije nekog računara su dužine 18 bitova, a adresna polja su dužine 7 bitova. Ustanoviti da li je moguće formatima ovih dužina kodirati 15 dvoadresnih instrukcija 125dvoadresnih instrukcija, 125 jednoadresnih instrukcija i 28 nulaadresnih instrukcija.

• Skicirati karakteristične detalje načina kodiranja instrukcija ovog računara i postupka njihovog dekodiranja.

N. Milenković, Arhitektura i organizacija računara 2011

REDOSLED BAJTOVA U PODACIMA

• U računarima različitih proizvođača sreću se dva načina za uređivanje bajtova unutar podataka sa dužinama većim od bajta.

• Pri adresiranju repa (engl Little EndianPri adresiranju repa (engl. Little Endian byte order) adresa reči xx…xx002 je i adresa bajta najmanje težine u reči (rep reči). Ostali bajtovi sa rastućim težinama imaju rastuće adrese (xx…xx012 , xx…xx102 i xx…xx112 ).

N. Milenković, Arhitektura i organizacija računara 2011

REDOSLED BAJTOVA U PODACIMA

• Pri adresiranju glave (engl. Big Endian byte order) adresa reči xx…xx002 je i adresa bajta najveće težine u reči j j(glava reči). Ostali bajtovi sa opadajućim težinama imaju rastuće adrese (xx…xx012 , xx…xx102 i xx…xx112 ).

N. Milenković, Arhitektura i organizacija računara 2011

Page 12: Computer organisation

12

N. Milenković, Arhitektura i organizacija računara 2011

Poravnati pristupi memoriji

• Pristup podatku u memoriji sa adresom a, dužine l=2k bajtova, je poravnati pristup memoriji (engl. aligned data access) ako je adresa a deljiva sa l, odnosno ako jea mod l = 0.

Ovaj uslov može se iskazati i na drugi način: pristup podatku dužine l bajtova sa adresom a u memoriji je poravnat, ako je k adresnih bitova najmanje težine jednako nuli.

N. Milenković, Arhitektura i organizacija računara 2011

Poravnati i neporavnati pristupimemoriji

N. Milenković, Arhitektura i organizacija računara 2011

Tipovi podataka podržani arhitekturom

Arhitekturom skupa instrukcija definišu se tipovi podataka koje procesor prepoznaje i sa njima rukuje na određeni način.

Najčešće su to:Najčešće su to: • logički tip podataka, • najjednostavniji tipovi celobrojnih podataka, i• standardni tipovi realnih podataka. • Uz njih, neke arhitekture uvode i niske

znakova kao standardni tip podataka.

N. Milenković, Arhitektura i organizacija računara 2011

Celobrojni podaci• Celobrojni podaci razlikuju se prema dužini i

prema tome da li su sa znakom to jest označeni podaci (engl. signed data) ili bez znaka to jest neoznačeni podaci (engl. unsigned data).

• Prema dužini podaci mogu biti tipa bajt (8Prema dužini podaci mogu biti tipa bajt (8 bitova), polureč (16b tj. 2B), reč (4B) i dvostruka reč (8B).

• Označeni podaci se obično predstavljaju u komplementu dvojke.

• Neoznačeni podaci najčešće se koriste kao adresne konstante.

N. Milenković, Arhitektura i organizacija računara 2011

Realni podaci

• Realni podaci se u računarima predstavljaju u obliku sa pokretnom zapetom. Ovaj tip podataka je standardizovan, i sa njim ćemo se detaljno upoznati u poglavlju 5 knjige.

• Sve arhitekture imaju kao standardni tip• Sve arhitekture imaju kao standardni tip podatke sa pokretnom zapetom sa jednostrukom i dvostrukom preciznošću.

• Za rad sa podacima ovih tipova u skupu instrukcija procesora postoji poseban podskup instrukcija.

N. Milenković, Arhitektura i organizacija računara 2011

Page 13: Computer organisation

13

Niske znakova

• Niske znakova promenljivih dužina do određene gornje granice takođe se sreću kao tip podataka koje arhitektura p p jmože podržati.

• U tom slučaju postoje instrukcije za prenos niski znakova, poređenje niski, traženje niski itd.

N. Milenković, Arhitektura i organizacija računara 2011

SKUP INSTRUKCIJA PROCESORA

• Skup instrukcija procesora uključuje sve instrukcije koje je procesor u stanju da prepozna i izvrši On se može sastojatiprepozna i izvrši. On se može sastojati od svega nekoliko jednostavnih instrukcija do više stotina instrukcija, među kojima ima i vrlo složenih instrukcija.

N. Milenković, Arhitektura i organizacija računara 2011

Zahtevane osobine skupa instrukcija

Zahteva se da skup instrukcija bude:• kompletan,• efikasan• efikasan,• regularan,• kompatibilan, i• prilagođen savremenoj implementaciji.

N. Milenković, Arhitektura i organizacija računara 2011

Kompletnost skupa instrukcijaKompletan skup instrukcija mora uključivati

instrukcije kojima se može obaviti svaka aktivnost koja se može iskazati nekim formalnim postupkom.

On dakle mora imati instrukcije kojima se:i š j it tičk i l ičk ij• izvršavaju aritmetičke i logičke operacije, čime se vrši transformacija podataka ako je ona postupkom obuhvaćena,

• prenose podaci, i• upravlja aktivnostima obuhvaćenim

postupkom.

N. Milenković, Arhitektura i organizacija računara 2011

Efikasnost skupa instrukcija

• Skup instrukcija je efikasan ako se najčešće sretane funkcije mogu implementirati kratkim nizovima instrukcija (prostorna efikasnost), i ako j (p ),se te funkcije obavljaju za kratko vreme (vremenska efikasnost).

• Skup instrukcija često mora biti kompatibilan sa nekim ranije definisanim skupom instrukcija.

N. Milenković, Arhitektura i organizacija računara 2011

Regularnost skupa instrukcija

• Skup instrukcija je regularan ako ima instrukcije određene vrste za rad sa svim tipovima podataka, ako sadrži p p ,standardni skup uslova u instrukcijama uslovnog grananja i slično. Na primer, treba da ima instrukcije Load i Store za prenos podataka tipa bajt, polureč, rečitd.

N. Milenković, Arhitektura i organizacija računara 2011

Page 14: Computer organisation

14

Prilagođenost implementacionim tehnologijama

• Skup instrukcija mora biti prilagođen zahtevima savremenih implementacionih tehnologija.

• Jedna od njih je protočnost u radu procesora, sa zahtevima što veće ujednačenosti obima aktivnosti u instrukcijama, mogućnošću preklapanja izvršenja operacija, mogušnošću preuređenja instrukcija u programima i drugim zahtevima.

N. Milenković, Arhitektura i organizacija računara 2011

Pregled instrukcija po grupama Grupa aritmetičkih instrukcija sadrži instrukcije • sabiranja, • oduzimanja, • množenja, • deljenja, • poređenja, • inkrementiranja/dekrementiranja,• komplementiranja itd. celobrojnih označenih i neoznačenih podataka.

N. Milenković, Arhitektura i organizacija računara 2011

Primeri aritmetičkih instrukcija

• ADD Ri,Rj,Rk Ri←Rj+Rk ,• SUB Ri,Rj,Rk Ri←Rj-Rk ,• MUL Ri,Rj,Rk Ri←Rj×Rk ,• DIV Ri,Rj,Rk Ri←Rj/Rk ,j j• COMP Ri,Rj Razlika Ri-Rj utiče na

stanja indikatora Z i S,• INC Ri Ri←Ri+d ,• NEG Ri Ri←dvoični komplement(Ri),

N. Milenković, Arhitektura i organizacija računara 2011

Pregled instrukcija po grupama

• Grupa logičkih instrukcija sadrži instrukcije za obavljanje logičkih operacija I, ILI, NE, Isključivo ILI itd. p j , , , j _neoznačenih celobrojnih podataka.

• Grupa instrukcija pomeranja sadrži instrukcije za logičko pomeranje ulevo i udesno bez i sa kružnim prenosom i aritmetičko pomeranje udesno.

N. Milenković, Arhitektura i organizacija računara 2011

Primeri logičkih instrukcija• Neka su Rj i Rk osmobitni registri sa sadržajima

(Rj)=01001110 i (Rk)=11010101

• AND Ri,Rj,Rk Ri←Rj ∧ Rk , (Ri)=01000100• OR Ri,Rj,Rk Ri←Rj ∨ Rk , (Ri)=11011111OR Ri,Rj,Rk Ri←Rj ∨ Rk , (Ri) 11011111• XOR Ri,Rj,Rk Ri←Rj ⊕ Rk , (Ri)=10011011• NOT Ri Ri← invertovan_svaki_bit(Ri)

pre instrukcije (Ri)= 10011110posle instrukcije NOT Ri (Ri)= 01100001

N. Milenković, Arhitektura i organizacija računara 2011

Primeri instrukcija pomeranja

• SHL Ri,Rj,bp Ri ← Rj « bpPrimer SHL Ri,Rj,5(Rj)=1010 1111 0101 0011(Ri)= 1110 1010 0110 0000,(Ri) 1110 1010 0110 0000,

• SHR Ri,Rj,bp Ri ← Rj » pPrimer SHR Ri,Rj,3(Rj)=1010 1111 0101 0011(Ri)= 0001 0101 1110 1010,

N. Milenković, Arhitektura i organizacija računara 2011

Page 15: Computer organisation

15

Primeri instrukcija pomeranja

• SHRA Ri,Rj,bp Ri←Rj » bpPrimer SHRA Ri,Rj,3(Rj)=1010 1111 0101 0011(Ri)= 1111 0101 1110 1010,

• ROL Ri,Rj,bp Ri←Rj «! bpPrimer ROL Ri,Rj,5(Rj)=1010 1111 0101 0011(Ri)= 1110 1010 0111 0101,

N. Milenković, Arhitektura i organizacija računara 2011

Instrukcije za prenos podataka• Grupa instrukcija za prenos podataka sadrži

instrukcije Move, Load, Store, Push, Pop, In, Out i druge.

• U novije vreme ova grupa instrukcija obogaćena je instrukcijama uslovnog prenosa(engl. conditional move). One sadrže uslov koji mora biti ispunjen da bi se prenoskoji mora biti ispunjen da bi se prenos podatka obavio.

• Naprimer, instrukcija MOVZ u MIPS arhitekturi u obliku MOVZ Ra,Rb,Rc ima dejstvo

if Ra==0 then Rc ← Rb.

N. Milenković, Arhitektura i organizacija računara 2011

Primeri instrukcija za prenos podataka

PUSH : POP:SP ← SP-1, DReg ← S[SP],SP ← SP 1, DReg ← S[SP],S[SP] ← DReg. SP ← SP+1.

N. Milenković, Arhitektura i organizacija računara 2011

Druge grupe instrukcija

• Grupa sistemskih instrukcija obuhvata instrukcije za poziv usluga operativnog sistema, zaustavljanje programa u prekidnoj tački upravljanje keš memorijom i virtuelnomtački, upravljanje keš memorijom i virtuelnom memorijom, povratak iz rukovaoca izuzetaka itd.

• Grupa instrukcija za rad sa dekadnim podacima obuhvata instrukcije za korekciju operanada pri dekadnom sabiranju, množenju i deljenju.

N. Milenković, Arhitektura i organizacija računara 2011

Grupe instrukcija prema operacijama koje se u njima javljaju

Tip operatora PrimeriAritmetički i

logički Celobrojne aritmetičke i logičke operacije

Prenos podataka Punjenja, pamćenja, instrukcije prenosa

Upravljanje Grananja, skokovi, pozivi i vraćanja iz procedura, trapovi

Sistemski Pozivi operativnog sistema, instrukcije za upravljanje virtuelnom i keš memorijom

Pokretna zapeta

Operacije sa pokretnom zapetom: sabrati, pomnožiti, konverzija celobrojnog pod. u pokretnu zapetu i obrnuto

Dekadne Dekadno sabiranje i množenje, konverzija iz dekadnog oblika u nisku znakova i obrnuto

Niske znakova Prenos niske, poređenje niski, traženje niski

Grafički Operacije sa pikselima, operacije kompresije i dekompresije

Multimedijalni Operacije na grupama pakovanih celobrojnih i FP podataka

N. Milenković, Arhitektura i organizacija računara 2011

Instrukcije za upravljanje tokom programa

• Grupa instrukcija za upravljanje tokom programa sadrži instrukcije bezuslovnog i uslovnog grananja, skokova, poziva procedura (potprograma) i povratka iz

d ( t )procedura (potprograma). • Tabela 2.10 sadrži prikaz ovih instrukcija za

tipičan RISC procesor. • U ovim instrukcijama (osim JR i JALR) za

odredište grananja odnosno skoka koristi se adresiranje relativno u odnosu na programski brojač. Otklon je označeni ceo broj.

N. Milenković, Arhitektura i organizacija računara 2011

Page 16: Computer organisation

16

Instrukcije za upravljanje tokom programa na tipičnom RISC procesoru i njihova dejstva

Naziv instrukcije Primerinstrukcije Značenje

Jump (skok) J ime PC ← PC + 4 + ime ;-2p-1 ≤ime < 2p-1

Jump register (skokodređen registrom) JR R3 PC ← R3

Branch if equal zero(grananje ako je nula)

BEQZ R4,ime

if (R4==0) PC ← PC + 4 + imeelse PC ← PC + 4 ;

-2q-1 ≤ ime < 2q-1

Jump and link (skoči ipoveži) JAL ime

R31 ← PC + 4,

PC ← PC + 4 + ime ;-2p-1 ≤ ime < 2p-1

Jump and link register(skoči i poveži prekoregistra)

JALR R2R31 ← PC + 4,

PC ← R2

Branch if equal zero and link(grananje i povezivanje akoje nula)

BEQZAL R4,ime

if (R4==0) R31 ← PC + 4,PC ← PC + 4 + imeelse PC ← PC + 4 ;

-2q-1 ≤ ime < 2q-1

N. Milenković, Arhitektura i organizacija računara 2011

Pozivanje proceduraPri pozivu i izvršenju procedure treba obaviti

sledeće aktivnosti:1. Smestiti parametre na mesto gde im

procedura može pristupiti, 2. Preneti upravljanje proceduri,3 Zatražiti memorijske resurse potrebne3. Zatražiti memorijske resurse potrebne

proceduri,4. Izvršiti naloženi zadatak,5. Smestiti rezultate procedure na mesto gde

im pozivajući program može pristupiti,6. Vratiti upravljanje na polaznu tačku, pošto

procedura može biti pozivana sa različitih tačaka u programu.

N. Milenković, Arhitektura i organizacija računara 2011

Efikasan prenos parametara i rezultata

U MIPS arhitekturi za prenos parametara (argumenata) i vraćanje rezultata, kao i za čuvanje adrese povratka u pozivajući program koriste se registri procesora i to:program, koriste se registri procesora, i to:

• $a0-$a3 (R4-R7) za prenos parametara u proceduru,

• $v0-$v1 (R2-R3) za vraćanje rezultata u pozivajući program,

• $ra (R31) za pamćenje adrese povratka u pozivajući program.

N. Milenković, Arhitektura i organizacija računara 2011

Instrukcije za pozivanje procedura

• Za poziv procedura na raspolaganju su instrukcije skoka na proceduru, JAL i JALR, i uslovnog grananja na proceduru BEQZAL.

• U ovim insrukcijama adresa povratka iz procedure pamti se u registru određenom arhitekturom (to je ovde registar R31).

N. Milenković, Arhitektura i organizacija računara 2011

Pozivanje procedura sa ugnježdenjem

• U slučaju ugnježdenja nove procedure, na primer PROCj, u izvršavanu proceduru, na primer PROCi, potrebno je najpre zapamtiti sadržaj registra R31 (adresu povratka izsadržaj registra R31 (adresu povratka iz PROCi) recimo u steku, pa tek onda pozvati PROCj.

• Povratak iz izvršavane procedure u pozivajući program vrši se instrukcijom JR R31.

Potpuniji prikaz ugnježdenja procedure u proceduru bio bi:

N. Milenković, Arhitektura i organizacija računara 2011

Pozivanje procedura sa ugnježdenjem

N. Milenković, Arhitektura i organizacija računara 2011

Page 17: Computer organisation

17

Instrukcije uslovnog grananja• Instrukcijama uslovnog grananja proverava

se ispunjenje zadatih uslova na osnovu određenih relacija, i ako su uslovi ispunjeni grananje se obavlja, inače ono izostaje. Često je pogodno ove aktivnosti razdvojiti na:

g1. proveru zadovoljenja određene relacije i i i h d t d iđupis ishoda te provere na predviđenom

mestu,g2. ispitivanje ishoda prethodno obavljene

provere i grananje ako je on pozitivan.Sreću se tri rešenja, prikazana na sledećim

slajdovima.

N. Milenković, Arhitektura i organizacija računara 2011

Rešenje sa implicitnim Registrom koda uslova (1)

• U ovom rešenju aktivnosti g1. i g2. obavljaju se odvojenim instrukcijama.

• Primer:ADD R1 R2 R3ADD R1, R2, R3 / Izvršenjem ove instrukcije utiče se na

stanje indikatora u Registru koda uslova CCR (Z, S, C, O) /

••

BEQZ ime / if (Z==1) then PC ← PC+4+ime else PC ← PC+4 /

N. Milenković, Arhitektura i organizacija računara 2011

Rešenje sa registrom uslova (2)

• I u ovom rešenju aktivnosti g1. i g2. obavljaju se odvojenim instrukcijama. Aktivnost g1. obavljaju za to namenjene posebne instrukcije. Ishod provere upisuju u neki od registara opšte namene, koji je eksplicitno adresiran. Primer:

• SLT Rk,Ri,Rj / opšti oblik ove instrukcije je Srel Rk,Ri,Rj sa dejstvom

• • if (Ri rel Rj ) then Rk ←1else Rk ← 0;• • rel∈{EQ, NE, LT, LE, GT, GE } /• •• BNEZ Rk, ime / if (Rk != 0) then PC ← PC+4+ime

else PC ← PC+4 /

N. Milenković, Arhitektura i organizacija računara 2011

Poređenje i grananje (3)

• U ovom rešenju aktivnosti g1. i g2. obavljaju se jednom instrukcijom, tako da i ovde nema ograničenja navedenih za prvo rešenje.P i• Primer:

BEQ Ri, Rj, ime / if (Ri == Rj) then PC ← PC+4+ime else PC ← PC+4 /

N. Milenković, Arhitektura i organizacija računara 2011

CISC I RISC PROCESORIDa bismo razumeli način razmišljanja

zagovornika RISC arhitektura, počnimo sa kratkim pregledom karakteristika izvršenja naredbi. Aspekti koji nas interesuju su:

• Obavljane operacije: ovo određuje funkcije koje treba da obavlja CPU i njegovekoje treba da obavlja CPU i njegove interakcije sa memorijom,

• Korišćeni operandi: tipovi operanada i učestanost njihovog korišćenja određuje organizaciju memorije za njihovo čuvanje i načine adresiranja za pristupanje njima,

• Uređivanje izvršenja programa: ovo određuje organizaciju upravljanja i protočnog izvršenja.

N. Milenković, Arhitektura i organizacija računara 2011

Zaključci izvedeni iz ovih istraživanja doveli su do koncepcije RISC arhitekture, čije su odlike sledeće:

• mali broj jednostavnih instrukcija,• sve operacije obavljaju se nad operandima u

registrima; obraćanje memoriji samo sa instrukcijama Load i Store,

f f• mali broj formata instrukcija sa fiksnim položajem polja u formatu,

• mali broj jednostavnih načina adresiranja,• pogodnosti za protočnu organizaciju

procesora, tako da se u idealnom slučaju instrukcije mogu obavljati tempom od jedne instrukcije po periodi takta,

• upravljačka jedinica realizovana hardverski.N. Milenković, Arhitektura i organizacija računara 2011

Page 18: Computer organisation

18

Prednosti i nedostaciIz ovih osobina proističu i druge prednosti:• kratak rok projektovanja i testiranja

projekta,• mogućnost optimizacije projekta, i drugi.Ova koncepcija ima i nedostatke:Ova koncepcija ima i nedostatke:• manja gustina koda (duži programi), što

zahteva veću memoriju,• zahteva bržu memoriju za čuvanje

programa,• potreban veći broj registara u

procesoru.N. Milenković, Arhitektura i organizacija računara 2011

Najvažnije karakteristike CISC procesora su:

• veliki broj instrukcija, od kojih su neke i vrlo složene,

• memorijski operandi mogu direktno j p gučestvovati u operacijama,

• veliki broj formata instrukcija sa promenljivim elementima,

• veliki broj načina adresiranja,• upravljačka jedinica realizovana

mikroprogramski.

N. Milenković, Arhitektura i organizacija računara 2011

SISTEM PREKIDA RAČUNARA

• Termin prekid (engl. interrupt) ili izuzetak (engl. exception) koristi se u širokom smislu za bilo koji redak ili neočekivani događaj koji uzrokuje da g j j jCP sa izvršenja tekućeg programa pređe na drugi program koji opslužuje prekid.

• Prekidi mogu biti generisani od različitih izvora unutar ili van CP-a.

N. Milenković, Arhitektura i organizacija računara 2011

Mogući izvori prekida

1. zahtevi od U-I uređaja,2. pozivanje usluga operativnog sistema

iz programa korisnika,3. trasiranje izvršenja instrukcija,j j j ,4. prekidne tačke (prekidi zahtevani od

programera),5. prekoračenje i potkoračenje u

celobrojnoj aritmetici,6. anomalije u aritmetici sa pokretnom

zapetom,

N. Milenković, Arhitektura i organizacija računara 2011

Mogući izvori prekida

7. greška stranice (odsustvo stranice u glavnoj memoriji),

8. neporavnati pristup memoriji (ako j (takav nije dopustiv),

9. povreda zaštite memorije,10.korišćenje nedefinisane instrukcije,11.greške u radu hardvera,12.nestanak napona napajanja.

N. Milenković, Arhitektura i organizacija računara 2011

Preciziranje termina

• Termin prekid najčešće se koristi za asinhrone događaje koji nastaju van CP-a. Takvi događaji su navedeni pod brojevima 1 i 12 th d i k12 u prethodnom spisku.

• Termin izuzetak najčešće se koristi za sinhrone događaje koji nastaju unutar CP-a, kada on ustanovi ispunjenje jednog ili više unapred definisanih uslova za vreme izvršenja neke instrukcije.

N. Milenković, Arhitektura i organizacija računara 2011

Page 19: Computer organisation

19

Odgovor procesora na prekide i izuzetke

• Procesor odgovara na prekide i izuzetke u suštini na isti način.

• Po signaliziranju i prihvatanju prekida ili izuzetka procesor napušta izvršenje tekućeg programa ili zadatka i prelazi na program rukovaoca prekida (engl. interrupt handler procedure). Po završetku opsluživanja prekida ili izuzetka nastavlja se izvršenje prekinutog programa.

N. Milenković, Arhitektura i organizacija računara 2011

Maskirljivi i nemaskirljivi prekidi

• CP se o prekidima obaveštava preko izvesnog broja ulaznih priključaka.

• Prekidi se dele na maskirljive prekide (one koji se mogu selektivno privremeno zabraniti) i nemaskirljive prekide (koji se ne mogu

b iti ki j ) Ul i iklj č izabraniti maskiranjem). Ulazni priključci procesora za podnošenje zahteva za maskirljive i nemaskirljive prekide su odvojeni.

• Kod sistema prekida sa prioritetima, izvor zahteva za prekid dostavlja svoj prioritet na odgovarajuće ulazne priključke procesora.

N. Milenković, Arhitektura i organizacija računara 2011

Upućivanje zahteva za prekid procesoru

• Kada procesor prihvati zahtev za prekid, on to signalizira uređajima koji su zahtevali prekid preko posebnog izlaznog priključka potvrde prekida.

Zahtevimaskirljivihprekida • Tada se izvor

prihvaćenog prekida mora identifikovati, da bi procesor mogao da pređe na izvršenje odgovarajućeg programa koji opslužuje prihvaćeni prekid.

prekida Zahtevinemaskirljivih prekida

Potvrda prihvatanjazahteva za prekid

Centralniprocesor

N. Milenković, Arhitektura i organizacija računara 2011

Izuzeci unutar CP-a

• Situacija sa izuzetnim događajima koji nastaju unutar CP-a je drukčija.

• Procesor ima informacije o tome šta se jdogodilo pri njegovom radu (ova informacija beleži se u nekom od njegovih sistemskih registara), tako da tu informaciju može direktno iskoristiti za prelazak na program koji opslužuje nastali izuzetak.

N. Milenković, Arhitektura i organizacija računara 2011

Pregled karakteristika izuzetaka

Tip izuzetka Sinhroni-asinhroni

Zahtevan odkorisnika-prinudni

Maskirljiv-nemaskirljivod korisnika

Unutar-izmeđuinstrukcija

Sazavršetkom-nastavkom

Zahtevi od U-I uređaja asinhroni prinudni nemaskirljiv između nastavkom

Pozivanje usluga operativnogsistema iz programa korisnika

sinhroni od korisnika nemaskirljiv između nastavkom

Trasiranje izvršenja instrukcija sinhroni od korisnika maskirljiv između nastavkom

Prekidne tačke sinhroni od korisnika maskirljiv između nastavkom

Prekoračenje i podkoračenjeu celobrojnoj aritmetici

sinhroni prinudni maskirljiv unutar nastavkomj j

Anomalije u aritmetici sapokretnom zapetom

sinhroni prinudni maskirljiv unutar nastavkom

Greška stranice sinhroni prinudni nemaskirljiv unutar nastavkom

Neporavnati pristup memoriji sinhroni prinudni maskirljiv unutar nastavkom

Povreda zaštite memorije sinhroni prinudni nemaskirljiv unutar nastavkom

Korišćenje nedefinisane instrukcije

sinhroni prinudni nemaskirljiv unutar završetkom

Greške u radu hardvera asinhroni prinudni nemaskirljiv unutar završetkom

Nestanak napona napajanja asinhroni prinudni nemaskirljiv unutar završetkom

N. Milenković, Arhitektura i organizacija računara 2011

Aktivnosti procesora po prihvatanju zahteva za prekid

1. CP šalje potvrdu o prihvatanju zahteva za prekid i identifikuje izvor prekida, a identifikator izvora prekida transformiše u adresu početka prekidnog programa.

2. CP zabranjuje prihvatanje novih prekida. Sadržaje registara PC, PSW i eventualno drugih sistemskih registara koji određuju stanje prekinutog programa pamti u steku ili za to predviđenim registrima.

N. Milenković, Arhitektura i organizacija računara 2011

Page 20: Computer organisation

20

Aktivnosti procesora po prihvatanju zahteva za prekid

3. PC, PSW i eventualno drugi sistemski registri pune se podacima koji određuju prelazak procesora na prekidni program (ovim se maskiraju zahtevi za prekidima nižih prioriteta, ili se registar prioriteta puni prioritetom prekidnog programa). Dozvoljava se prihvatanje novih prekida. (Ovim se prelazi na prekidni program.)

4. Po potrebi, u prekidnom programu pamte se sadržaji drugih (nesistemskih) registara CP-a koji se koriste u tom programu.

N. Milenković, Arhitektura i organizacija računara 2011

Aktivnosti procesora po prihvatanju zahteva za prekid

5. Izvršava se telo prekidnog programa, odnosno aktivnosti zbog kojih je ovaj program aktiviran.

6. Po potrebi, obnavljaju se sadržaji drugih registara CP-a, korišćenih u prekidnom programu.

7. Zabranjuje se prihvatanje novih prekida. Obnavljaju se zapamćeni sadržaji PSW-a, PC-a i eventualno drugih sistemskih registara prekinutog programa (ovo uključuje vrednosti maske prekida ili prioriteta programa). Dozvoljava se prihvatanje novih prekida. (Ovim se vraća u prekinuti program, čije se izvršenje nastavlja.)

N. Milenković, Arhitektura i organizacija računara 2011

Automatske aktivnosti CP-a

• Aktivnosti 1, 2 i 3 u celosti ili delimično obavlja CP automatski, koristeći za to postojeći hardver.

• Aktivnosti 4, 5 i 6 obavljaju se u okviru prekidnog programa.

• Aktivnosti u okviru tačke 7 obavlja CPAktivnosti u okviru tačke 7 obavlja CP izvršenjem specijalne instrukcije RFE (Return From Exception) ili RFI (Return From Interrupt).

• Samo aktivnosti u tački 5 su korisne u užem smislu, sve ostale aktivnosti su režijske, odnosno one koje omogućuju ovakav način aktiviranja prekidnog programa.

N. Milenković, Arhitektura i organizacija računara 2011

Rešenje za brži odziv na izuzetke• Neki procesori (npr. MIPS32_M4K_Core)

sadrže dodatna polja registara u vidu registara u senci (eng. shadow registers) koja se dodeljuju određenim tipovima izuzetaka.

• Time se umesto pamćenja i obnavljanjaTime se umesto pamćenja i obnavljanja sadržaja registara iz arhitekturnog polja registara u koracima 4 i 6 jednostavno prelazi sa jednog na drugo polje registara, pa se tako skraćuje režijsko vreme pri opsluživanju izuzetaka.

N. Milenković, Arhitektura i organizacija računara 2011

Promena konteksta programa

• Opsluživanje izuzetaka tipa grešaka i trapova razlikuje se od niza aktivnosti 1.÷7. uglavnom u tome da je informacija o uzroku izuzetka prisutna u nekom od sistemskih registara samog procesora, na osnovu čega se određuje adresa rukovaoca izuzetka.

• Pamćenje informacije o stanju prekinutog programa i dostavljanje informacije procesoru o stanju prekidnog programa koji se aktivira (u koracima 2 i 3), kao i obnavljanje stanja prekinutog programa u koraku 7, naziva se promena konteksta programa (engl. context switching).

N. Milenković, Arhitektura i organizacija računara 2011

ARHITEKTURA SKUPA INSTRUKCIJA MIPS PROCESORA

• MIPS arhitektura je RISC arhitektura proistekla iz istraživanja koja su na Stanford univezitetu u okviru projekta Microprocessor without Interlocked Pipelined Stages (MIPS) obavljena u periodu od 1981.-1983. godine j p gpod rukovodstvom profesora John-a Hennessy-a.

• Kasnije je osnovana firma MIPS čiji su komercijalni proizvodi mikroprocesori u okviru R familije: R2000, R3000, R6000, R4000, R8000, R10000, R12000, MIPS32 74K familija jezgara i drugi.

N. Milenković, Arhitektura i organizacija računara 2011

Page 21: Computer organisation

21

Centralni procesor i koprocesoriUpoznaćemo se sa osnovnim elementima

MIPS32™ Architecture. Ona definiše centralniprocesor (CP) i tri koprocesora:

• Koprocesor 0 (CP0) se zajedno sa CPimplementira u istom čipu i podržava virtuelnimemorijski sistem i rukovanje izuzecima. CP0j jse takođe naziva i Koprocesor upravljanjasistemom (System Control Coprocessor).

• Koprocesor 1 (CP1) rezervisan je za FPkoprocesor,

• Koprocesor 2 (CP2) rezervisan je zaspecifične implementacije.

N. Milenković, Arhitektura i organizacija računara 2011

Celobrojni registriMIPS32™ arhitektura definiše sledeće registre,

dužina po 32 bita:• 32 registra opšte namene (GPR), koji

obrazuju polje celobrojnih registara,• dva registra posebne namene HI i LO, u kojeg p , j

se smeštaju rezultati operacija množenja,deljenja, i množenja i akumuliranja,

• programski brojač PC, koji nije arhitekturnovidljivi registar, na koji se samo indirektnoutiče nekim instrukcijama,

N. Milenković, Arhitektura i organizacija računara 2011

FP registri

• 32 FP registra opšte namene (FPR), kojiobrazuju polje FP registara; svi FP registriraspoloživi su za korišćenje u operacijama saFP podacima jednostruke preciznosti;

• FP podaci dvostruke preciznosti čuvaju se uparu susednih FP registara, od kojih je prvi saparnim a drugi sa neparnim indeksom,

• 5 FP upravljačkih registara, čija je uloga daidentifikuju FP jedinicu i upravljaju njome.

N. Milenković, Arhitektura i organizacija računara 2011

Korisnički vidljivi registri

u MIPS32

arhitekturi.

31 31R0 F0R1 F1

Registri op{tenamene (GPR)

Registri FPjedinice (FPR)

0 0

R31 F31

PC FIRFCCRFEXRFENRFCSR

HILO

Registri posebne namene FPU upravlja~ki

registri N. Milenković, Arhitektura i organizacija računara 2011

Registri sa posebnim ulogamaDva od 32 GPR registra imaju posebne uloge:• R0 je ožičen na sadržaj 0 (on zapravo i nije

pravi registar); on se može koristiti kaoizvorišni registar kada je potrebna vrednost 0ili kao odredišni registar kada rezultatoperacije treba odbacitioperacije treba odbaciti,

• R31 je odredišni registar u instrukcijamaJAL, BLTZAL, BLTZALL, BGEZAL, iBGEZALL bez njegovog eksplicitnognavođenja u ovim instrukcijama; van njih onse koristi kao i drugi GPR registri.

N. Milenković, Arhitektura i organizacija računara 2011

Podržani tipovi celobrojnih podataka

MIPS32 arhitektura definiše sledećeformate celobrojnih podataka:

• bit,• bajt,• polureč (2B),• reč (4B), i• dvostruku reč (8B).

N. Milenković, Arhitektura i organizacija računara 2011

Page 22: Computer organisation

22

Označeni i neoznačeni podaci

• Celobrojni podaci svih formata (osimbita) mogu biti označeni ili neoznačeni.

• Neposredni operand tretira se kaooznačen u aritmetičkim instrukcijama ioznačen u aritmetičkim instrukcijama iinstrukcijama poređenja, kada se uzimaznakovno proširen do dužine registra.

• U logičkim instrukcijama, neposrednioperand uzima se kao neoznačen, iproširuje se nulama do dužine registra.

N. Milenković, Arhitektura i organizacija računara 2011

Tipovi FP podataka

Arhitektura takođe definiše FP podatkesledećih tipova:

• 32-bitne FP podatke jednostruke32 bitne FP podatke jednostrukepreciznosti,

• 64-bitne FP podatke dvostrukepreciznosti, i druge.

N. Milenković, Arhitektura i organizacija računara 2011

Redosled bajtova u celobrojnim podacima

• Redosled bajtova u celobrojnimpodacima formata polureči, reči idvostrukih reči može biti tipa adresiranjeglave ili adresiranje repa, što seodređuje pri konfigurisanju procesora.

• Redosled bitova u podacima dužine nbitova je: LSb je bit 0, MSb je bit n-1.

N. Milenković, Arhitektura i organizacija računara 2011

Smeštanje podataka u memoriji

• Memorija je adresiva na nivou bajtova.• Arhitektura preporučuje poravnato

smeštanje i pristupe podacima formatajpolureči, reči i dvostrukih reči umemoriji, ali podržava i neporavnatosmeštanje i pristupe ovim podacima.

• Instrukcije moraju biti poravnatosmeštene u memoriji.

N. Milenković, Arhitektura i organizacija računara 2011

Podržani načini adresiranja

MIPS arhitektura podržava sledeće načineadresiranja:

• neposredno,• registarsko,• bazno (pomerajno), i• PC-relativno (samo u instrukcijama

grananja).Neposredno adresiranje koristi se za

adresiranje jednog izvorišnog operanda u aritmetičkim i logičkim operacijama.

N. Milenković, Arhitektura i organizacija računara 2011

Bazno adresiranje sa varijantama

• Bazno adresiranje je jedini načinadresiranja operanada u memoriji.Međutim, izborom posebnih vrednostipomeraja i adrese baznog registramogu se dobiti još dva izvedena načinamogu se dobiti još dva izvedena načinaadresiranja:

• Indirektno registarsko (ako je pomerajnula),

• Direktno (ako se kao bazni registarkoristi R0).

N. Milenković, Arhitektura i organizacija računara 2011

Page 23: Computer organisation

23

Formati instrukcija

• Sve instrukcije su dužine 32 bita, i moraju biti poravnato smeštene u memoriji računara.

• Postoje tri formata instrukcija za rad sa celobrojnim podacima prikazana nacelobrojnim podacima, prikazana na sledećem slajdu. U sva tri formata instrukcija kod operacije (op) i indeksi (adrese ) registara, dužine po 5b, imaju fiksna mesta, što olakšava i ubrzava dekodiranje instrukcija.

N. Milenković, Arhitektura i organizacija računara 2011

Formati instrukcija u MIPS arhitekturi

06

6 b 6 b5 b 5 b 5 b 5 b

1116212631R format

06

6 b 6 b5 b 5 b 5 b 5 b

1116212631R formatop rs rt rd shamt funct

0

6 b 5 b 5 b

16212631 0

6 b 5 b 5 b 16 b

16212631op rs rt I formatimmediate

0

6 b

2631 0

6 b 26 b

2631op J formattarget address

N. Milenković, Arhitektura i organizacija računara 2011

Oznake polja u ovim formatima i njihova značenja

• op - kod operacije instrukcije,• rs - indeks (identifikator) prvog izvorišnog

registra instrukcije,• rt - indeks drugog izvorišnog registra ilig g g g

odredišnog registra instrukcije,• rd - indeks odredišnog registra instrukcije,• shamt - broj binarnih pozicija za koje treba

pomeriti izvorišni operand,• funct - dodatno polje koda operacije

instrukcije,

N. Milenković, Arhitektura i organizacija računara 2011

Oznake polja u ovim formatima i njihova značenja

• immediate - neposredni operand uaritmetičko-logičkim instrukcijama,otklon u instrukcijama uslovnogj ggrananja ili pomeraj u instrukcijamaLoad i Store,

• target address - primarna adresaodredišta skoka u instrukcijama skoka ibezuslovnog poziva procedura.

N. Milenković, Arhitektura i organizacija računara 2011

Formati aritmetičko-logičkihinstrukcija

Aritmetičko-logičke instrukcije sutroadresne, sa dve varijante:

• sva tri operanda u registrima procesorag(R format),

• jedan izvorišni operand neposrednoadresiran (I format).

• R format namenjen je aritmetičko-logičkim instrukcijama i instrukcijamapomeranja.

N. Milenković, Arhitektura i organizacija računara 2011

I i J format

• I format namenjen je aritmetičko-logičkim instrukcijama, instrukcijama uslovnog grananja i instrukcijama g g j jobraćanja memoriji (Load i Store).

• J format namenjen je instrukcijama skoka i bezuslovnog poziva procedura.

N. Milenković, Arhitektura i organizacija računara 2011

Page 24: Computer organisation

24

Osobenosti instrukcija grananja i skoka

• MIPS32 arhitektura koristi specifičan oblikinstrukcija uslovnog grananja i skoka,takozvano zakašnjeno grananje (engl.delayed branch) i zakašnjeni skok.

• Zakašnjeno grananje i pri ispunjenom uslovu• Zakašnjeno grananje i pri ispunjenom uslovugrananja najpre izvrši instrukciju koja za njomsledi u programu, pa se tek onda odgrana naodredište grananja.

• Zakašnjeni skok takođe najpre izvršiinstrukciju koja za njim sledi u programu, patek onda skoči na odredište skoka.

N. Milenković, Arhitektura i organizacija računara 2011

Zakašnjeno grananje

Uslovispunjen

Uslovispunjen

dada

ne ne

Standardno grananje Zaka{njeno grananje

ne ne

N. Milenković, Arhitektura i organizacija računara 2011

Inkrementiranje PC-a za 8

• Za instrukciju koja u programu sledi zainstrukcijom grananja ili skoka kažemoda se nalazi u slotu kašnjenja grananjaili skoka.O i l di d ik• Ovo ima za posledicu da se u prikazudejstva instrukcije pri neispunjenjuuslova grananja programski brojačinkrementira za 8 umesto za 4, kao i daje pri pozivu procedure adresa povratkaiz procedure PC+8 umesto PC+4.

N. Milenković, Arhitektura i organizacija računara 2011

Dejstvo instrukcije grananja

• U MIPS arhitekturi instrukcije morajubiti poravnate. Ovo je iskorišćeno zapovećanje otklona odredišta grananja uodnosu na PC tako što se otklon preodnosu na PC tako što se otklon predodavanja PC-u pomera za dve binarnepozicije ulevo.

• Uz to, otklon mora biti znakovnoproširen do dužine PC-a pre sabiranjasa sadržajem PC-a, a to je za 32-16=16binarnih pozicija:

N. Milenković, Arhitektura i organizacija računara 2011

Dejstvo instrukcije grananja

• znak_proš(otklon) = (otklon15)16║otklon.

Imajući u vidu oba rešenja, instrukcija, naprimerBEQZ R4 i i d j t• BEQZ R4, ime ima dejstvo:if (R4==0)PC ← PC+ 4+ (znak_proš (ime))<<2

else PC ← PC + 8 ;-215 ≤ ime ≤ 215-1

N. Milenković, Arhitektura i organizacija računara 2011

Dejstvo instrukcije skoka• U MIPS arhitekturi u instrukcijama Jump i

Jump and link ne koristi se PC relativnoadresiranje odredišta. Umesto toga, sadržaj26-bitnog polja odredišta skoka pomera seulevo za dve binarne pozicije i zamenjuje niža28 bita sadržaja PC-a posle njegovog28 bita sadržaja PC a posle njegovoginkrementiranja.

• Na primer, instrukcijaJ ime ima za dejstvo

PC ← (PC + 4)31..28║(ime << 2),

0 ≤ ime ≤ 226-1.

N. Milenković, Arhitektura i organizacija računara 2011

Page 25: Computer organisation

25

Dejstvo instrukcije skoka

• Dakle, odredište skoka nije otklon uodnosu na PC+4, već je pozitivanpomeraj u bloku memorije veličine256MB č d d256MB počev od adrese

(PC+4)31..28║028.

• Granični slučaj nastaje kada su PC iPC+4 u susednim blokovima od po256MB.

N. Milenković, Arhitektura i organizacija računara 2011

Prekidi i izuzeci u MIPS32 arhitekturi

• Za podršku rukovanju izuzecima (to mogu biti izuzeci, prekidi i trapovi) MIPS arhitektura koristi grupu registara u okviru koprocesora CP0. I i t t i i t k i t• Iz ove grupe registara, tri registra koriste se u svim izuzecima, dok se ostali registri koriste u specifičnim tipovima izuzetaka.

• Ti registri su: Exception Program Counter, Cause Register i Status Register. Njihove uloge u rukovanju izuzecima su sledeće.

N. Milenković, Arhitektura i organizacija računara 2011

Exception Program Counter (EPC)

• Sadrži adresu instrukcije sa kojom će bitinastavljeno izvršenje prekinutog programaposle opsluživanja izuzetka.

• Za sinhrone izuzetke, EPC sadrži virtuelnuadresu instrukcije koja je izazvala izuzetakadresu instrukcije koja je izazvala izuzetak.

• Ali, kada je izuzetak izazvala instrukcija izslota kašnjenja grananja, EPC sadrživirtuelnu adresu instrukcije grananja ili skokačiji je to slot kašnjenja. U tom slučaju, uCause registru postavlja se bit "BranchDelay".

N. Milenković, Arhitektura i organizacija računara 2011

Status Register

Sadrži informacije o načinu rada, dozvolama istatusu elemenata procesora. Za rukovanjeizuzecima značajni su:

• indikator dozvole prekida (engl. InterruptEnable),),

• maska prekida (Interrupt Mask), polje širine 8bitova, i

• kód načina rada procesora.Brisanjem indikatora IE (IE=0) generalno se

zabranjuju prekidi, a postavljanjem ovogindikatora (IE=1) dozvoljavaju se prekidi kojinisu maskirani.

N. Milenković, Arhitektura i organizacija računara 2011

Status Register

• Pri IE=1, selektivna zabrana/dozvolamaskirljivih prekida vrši se prekoodgovarajućih bitova maske prekida.

• Vrednošću 0 ovog bita prekid seVrednošću 0 ovog bita prekid sezabranjuje, a vrednošću 1 sedozvoljava.

• Kód načina rada procesora je polješirine 2 bita koje sadrži kód tekućegnačina rada, koji mogu biti: Kernel,Supervisor ili User.

N. Milenković, Arhitektura i organizacija računara 2011

Cause Register

• Sadrži informacije o uzroku poslednjegizuzetka. Na uzrok izuzetka ukazuje petobitnikod uzroka izuzetka.

• Polje nerazrešenih prekida IP (engl. Interruptj p ( g pPending), dužine 8 bitova, sadrži prispele ajoš neopslužene zahteve za prekid iz 8mogućih izvora prekida.

• Indikator BD (Branch Delay) vrednošću 1ukazuje da je izuzetak izazvala instrukcija uslotu kašnjenja grananja ili skoka.

N. Milenković, Arhitektura i organizacija računara 2011

Page 26: Computer organisation

26

Uzroci izuzetaka i njihovi kodovi

• Procesor prima izuzetke iz više izvora, uključujući promašaje u baferu za prevođenje adresa (TLB), premašenja pri aritmetičkim operacijama, U-I prekide i sistemske pozive.

Neki od karakterističnih uzroka izuzetaka iNeki od karakterističnih uzroka izuzetaka i njihovi kodovi su:

• 0 prekid,• 1 izuzetak modifikacije TLB-a,• 6 izuzetak greške na magistrali pri

pribavljanju instrukcije,

N. Milenković, Arhitektura i organizacija računara 2011

Uzroci izuzetaka i njihovi kodovi

• 8 izuzetak sistemskog poziva,• 9 izuzetak prekidne tačke,• 10 izuzetak rezervisane instrukcije,• 12 izuzetak aritmetičkog premašenja,• 13 izuzetak trapa,• 15 izuzetak pri radu sa pokretnom zapetom.

N. Milenković, Arhitektura i organizacija računara 2011

Rukovalac izuzecima

• Kada CP otkrije jedan od ovih dozvoljenih izuzetaka, prekida normalan tok izvršenja instrukcija i prelazi u Kernel način rada.

• Procesor tada zabranjuje prekide, i prelazi na izvršenje softverskog procesora izuzetaka, nazvanog rukovalac izuzecima (engl. exception handler), smeštenog na fiksnoj adresi.

N. Milenković, Arhitektura i organizacija računara 2011

Rukovalac izuzecima

• Rukovalac izuzecima pamti kontekst procesora, uključujući

• sadržaj programskog brojača (kojeg pamti u EPC registru),

• tekući način rada (User ili Supervisor) i• status prekida (zabranjeni ili dozvoljeni).

Ovaj kontekst se pamti, tako da može biti obnovljen po opsluživanju izuzetka.

N. Milenković, Arhitektura i organizacija računara 2011

Adresa programa za opsluživanje izuzetka

• Takođe se relativna adresa programa za opsluživanje prihvaćenog izuzetka upisuje u vektor izuzetka, i PC se puni adresom

l ži j i tkprograma za opsluživanje izuzetka. • Ova adresa formira se sabiranjem vektora

izuzetka i adrese početka programa za opsluživanje određenog tipa izuzetaka.

N. Milenković, Arhitektura i organizacija računara 2011

Prioriteti izuzetakaSvim izuzecima dodeljeni su prioriteti. Izuzeci,

navedeni po redosledu opadajućih prioriteta, su:

• reset (najviši prioritet),• nemaskirljivi prekidi,• izuzeci pri pribavljanju instrukcija,p p j j j ,• premašenje pri celobrojnoj aritmetici, trapovi,

sistemski pozivi, prekidne tačke, rezervisane instrukcije i izuzeci pri radu sa pokretnom zapetom,

• izuzeci pri obraćanju operandu u memoriji, i• prekidi (najniži prioritet).

N. Milenković, Arhitektura i organizacija računara 2011

Page 27: Computer organisation

27

Korišćenje prioriteta izuzetaka

• Ako se u toku ciklusa instrukcije javi više izuzetaka, saopštava se samo izuzetak najvišeg prioriteta. j g p

• Generalno govoreći, rukovanje izuzecima vrši odgovarajući hardver, dok se opsluživanje izuzetaka vrši softverom, i specifično je za svaki tip izuzetka.

N. Milenković, Arhitektura i organizacija računara 2011

Skup instrukcija MIPS32 arhitekture za rad sa celobrojnim

podacima• Skup instrukcija MIPS32 arhitekture za

rad sa celobrojnim podacima naveden je u tabelama 2 14 do 2 18 Izostavljeneje u tabelama 2.14 do 2.18. Izostavljene su samo neke instrukcije koje su namenjene rešavanju problema specifičnih za višeprocesorske sisteme.

• U ovim tabelama navedeni su primeri svih instrukcija i njihova dejstva.

N. Milenković, Arhitektura i organizacija računara 2011

Mnem. oznaka Opis Primer i dejstvo

CPU Load/Store instrukcije sa poravnatim pristupima memoriji

LBLBUSBLH

LHUSHLW

LWUSW

Load ByteLoad Byte Uns

Store ByteLoad Halfword

Load Halfword UnsStore Halfword

Load WordLoad Word Uns

Store Word

LB rt, pom(rs): R[rt]←M[a]724║M[a] *

LBU rt, pom(rs): R[rt]←024║M[a]SB rt, pom(rs): M[a]← R[rt]7..0

LH rt, pom(rs): R[rt]←M[a]1516║M[a]

LHU rt, pom(rs): R[rt]←016║M[a]SH rt, pom(rs): M[a]← R[rt]15..0

LW rt, pom(rs): R[rt]←M[a]LWU rt, pom(rs): R[rt]←M[a]SW rt, pom(rs): M[a]←R[rt]p ( )

CPU Load/Store instrukcije sa neporavnatim pristupima memoriji

LWLLWRSWLSWR

Load Word LeftLoad Word RightStore Word Left

Store Word Right

LWL rt, pom(rs): R[rt]←R[rt] MERGE M[a]LWR rt, pom(rs): R[rt]←R[rt] MERGE M[a]

SWL rt, pom(rs): M[a]←some_MSbytes_from R[rt]SWR rt, pom(rs): M[a]←some_LSbytes_from R[rt]

Razne instrukcije

NOPBREAK

SYSCALL

No OperationBreakpointSystem Call

NOP: ne obavlja nikakvu aktivnost.BREAK: izaziva izuzetak prekidne ta~ke, odmah i bezuslovno

prenose}i upravljanje rukovaocu izuzetka.SYSCALL: izaziva izuzetak sistemskog poziva, odmah i bezuslovno

prenose}i upravljanje rukovaocu izuzetka.

N. Milenković, Arhitektura i organizacija računara 2011

Mnem. oznaka Opis Primer i dejstvo

ALU instrukcije sa neposrednim operandom

ADDIADDIU

SLTISLTIU

ANDIORI

XORILUI

Add Imm WordAdd Imm Uns Word

Set on Less Than ImmSet on Less Than Imm.

UnsAnd ImmOr Imm

Exclusive Or ImmLoad Upper Imm

ADDI rt, rs, imm: R[rt]←R[rs]+zp(imm)ADDIU rt, rs, imm: R[rt]←R[rs]+zp(imm), (mod. aritm.)

SLTI rt, rs, imm: if(R[rs]<zp(imm)) R[rt]←1 else R[rt]←0SLTIU rt, rs, imm: if(R[rs]<zp(imm)) R[rt]←1 else R[rt]←0

ANDI rt, rs, imm: R[rt]←R[rs] AND pn(imm)ORI rt, rs, imm: R[rt]←R[rs] OR pn(imm)

XORI rt, rs, imm: R[rt]←R[rs] XOR pn(imm)LUI rt, imm: R[rt]←imm║016

Troadresne ALU instrukcijej

ADDADDUSUB

SUBUSLT

SLTUANDOR

XORNORCLOCLZ

Add WordAdd Uns WordSubtract Word

Subtract Uns WordSet on Less Then

Set on Less Then UnsAndOr

Exclusive OrNor

Count Leading Ones in Word

Count Leading Zeros in Word

ADD rd, rs, rt: R[rd]←R[rs]+R[rt]ADDU rd, rs, rt: R[rd]←R[rs]+R[rt] , (mod. aritm.)

SUB rd, rs, rt: R[rd]←R[rs]-R[rt]SUBU rd, rs, rt: R[rd]←R[rs]-R[rt] , (mod. aritm.)

SLT rd, rs, rt: if(R[rs]<R[rt]) R[rd]←1 else R[rd]←0SLTU rd, rs, rt: if(R[rs]<R[rt]) R[rd]←1 else R[rd]←0

AND rd, rs, rt: R[rd]←R[rs] AND R[rt]OR rd, rs, rt: R[rd]←R[rs] OR R[rt]

XOR rd, rs, rt: R[rd]←R[rs] XOR R[rt]NOR rd, rs, rt: R[rd]←R[rs] NOR R[rt]

CLO rd, rs: R[rd]← broj_vode}ih_jedinica_u R[rs]CLZ rd, rs: R[rd]← broj_vode}ih_nula_u R[rs]

N. Milenković, Arhitektura i organizacija računara 2011

Mnem. oznaka

Opis Primer i dejstvo

Instrukcije pomeranja

SLLSRLSRASLLVSRLVSRAV

Shift Word Left LogicalShift WordRight Logical

Shift Word Right ArithmeticShift Word Left Logical Variable

Shift Word Right Logical VariableShift Word Right Arit. Variable.

SLL rd, rt, sa: R[rd]←R[rt]<< saSRL rd, rt, sa: R[rd]←R[rt]>> sa (logi~ko)

SRA rd, rt, sa: R[rd]←R[rt]>> sa (aritmeti~ko)SLLV rd, rt, rs: R[rd]←R[rt]<<R[rs]4..0

SRLV rd, rt, rs: R[rd]←R[rt]>>R[rs]4..0 (logi~ko)SRAV rd, rt, rs: R[rd]←R[rt]>>R[rs]4..0 (aritmeti~ko)

Instrukcije za mno`enje i deljenje

MULTMULTU

Multiply WordMultiplay unsigned Word

MULT rs,rt: HI,LO←R[rs] x R[rt], 64b proizvod u (HI, LO)i to u HI vi{i, a u LO ni`i deo

MADDMADDUMSUB

MSUBUMULDIV

DIVUMFHIMTHIMFLOMTLO

p y gMultiplay and Add Word to HI,LO

Mult. unsigned. and Add Word to HI,LOMult. and Subtract Word to HI,LO

Mult. unsign. and Subtract Word to HI,LOMultiplay Word to GPR

Divide WordDiv. Uns WordMove From HI

Move To HIMove From LO

Move To LO

MADD rs,rt: HI,LO←HI,LO + R[rs] x R[rt],MSUB rs,rt: HI,LO←HI,LO − R[rs] x R[rt],

MUL rd,rs,rt: R[rd]←R[rs] x R[rt], ni`a 32 bita 64-bitnogproizvoda u R[rd]

DIV rs, rt: HI, LO←R[rs] / R[rt], LO sadr`i 32b koli~nik,a HI 32b ostatak

MFHI rd: R[rd]←HI,MTHI rs: HI←R[rs], **MFLO rd: R[rd]←LO,

MTLO rs: LO←R[rs], **

N. Milenković, Arhitektura i organizacija računara 2011

Mnem. oznaka Opis Primer i dejstvo

Instrukcije skoka-skokovi unutar podru~ja od 256 MB

JJAL

JumpJump and Link

J adr: izvr{iti instr. u slotu ka{njenja, PC← (PC+4)31..28║(adr<< 2)JAL adr: kao J uz poziv procedure. Adresa povratka (PC+8) ~uva se u R[31].

Instrukcije skoka na apsolutne adrese

JRJALR

Jump RegisterJump and Link Register

JR rs: izvr{iti instr. u slotu ka{njenja, PC←R[rs]JALR rd, rs: izvr. instr. u slotu ka{njenja, R[rd]←PC+8, PC←R[rs]

Ako se rd izostavi, adresa povratka ~uva se u R[31].

Instrukcije uslovnog grananja sa pore|enjem dva registra PC relativneInstrukcije uslovnog grananja sa pore|enjem dva registra, PC-relativne

BBALBEQBNE

BEQLBNEL

Unconditional BranchBranch and LinkBranch on Equal

Branch on Not EqualBranch on Equal

Likely***Branch on Not Equal

Likely**

B pom: izvr{iti instrukciju u slotu ka{njenja, PC←PC+4+(znak_pro{(pom))<<2BAL pom: izvr{iti instrukciju u slotu ka{njenja, R[31] ←PC+8,

PC←PC+4+(znak_pro{(pom))<<2BEQ rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]==R[rt])

PC←PC+4+(znak_pro{(pom))<< 2 else PC←PC+8BNE rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs] !=R[rt])

PC←PC+4+(znak_pro{(pom))<< 2 else PC←PC+8BEQL rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]==R[rt])

PC←PC+4+(znak_pro{(pom))<< 2 else poni{titi instrukciju u slotu ka{njenja, PC←PC+8BNEL rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs] !=R[rt])

PC←PC+4+(znak_pro{(pom))<< 2 else poni{titi instrukciju u slotu ka{njenja, PC←PC+8

N. Milenković, Arhitektura i organizacija računara 2011

Page 28: Computer organisation

28

Mnem. oznaka Opis Primer i dejstvo

Instrukcije uslovnog grananja sa pore|enjem sa nulom, PC-relativne

BLEZBGTZBLTZBGEZ

BLTZALBGEZAL

Branch on LT or Eq. to ZeroBranch on Greater Than Zero

Branch on LT ZeroBranch on GT or Eq. to ZeroBranch on LT Zero and Link

Branch on GT or Eq. to Zero and Link

BLEZ rs, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]<=0) PC←PC+4+ (znak_pro{(pom))<< 2 else PC←PC+8

BLTZAL rs, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs]<0)R[31]←PC+8, PC←PC+4+(znak_pro{(pom))<<2 else PC←PC+8

(ograni~enje: rs≠31)

CPU Instrukcije uslovnog prenosa

MOVNMOVZMOVFMOVT

Move Conditional on Not ZeroMove Conditional on Zero

Move Conditional on FP FalseMove Conditional on FP True

MOVN rd, rs, rt: if(R[rt]!=0) R[rd]←R[rs]MOVZ rd, rs, rt: if(R[rt]==0) R[rd]←R[rs]

MOVF rd,rs,cc: if FPConditionCode(cc) = 0 R[rd] ← R[rs]MOVT rd,rs,cc: if FPConditionCode(cc) = 1 R[rd] ← R[rs]

Uslovne instrukcije trapa sa pore|enjem dva registraj p p j g

TGETGEUTLT

TLTUTEQTNE

Trap if Greater Than or EqualTrap if Greater Than or Equal

UnsignedTrap if LT

Trap if LT UnsTrap if Equal

Trap if Not Equal

TGE rs, rt: if(R[rs]>=R[rt]) then TrapTGEU rs, rt: if(R[rs]>=R[rt]) then Trap

TLT rs, rt: if(R[rs]<R[rt]) then TrapTLTU rs, rt: if(R[rs]<R[rt]) then TrapTEQ rs, rt: if(R[rs]==R[rt]) then TrapTNE rs, rt: if(R[rs]!=R[rt]) then Trap

Uslovne instrukcije trapa sa pore|enjem sa neposrednim operandom

TGEITGEIUTLTI

TLTIUTEQITNEI

Trap if Greater Than or Equal Immediate

Trap if Greater Than or Equal Imm Uns

Trap if LT ImmTrap if LT Imm UnsTrap if Equal Imm

Trap if Not Equal Imm

TGEI rs, imm: if(R[rs]>=zp(imm)) then TrapTGEIU rs, imm: if(R[rs]>=zp(imm)) then Trap

TLTI rs, imm: if(R[rs]<zp(imm)) then TrapTLTIU rs, imm: if(R[rs]<zp(imm)) then TrapTEQI rs, imm: if(R[rs]==zp(imm)) then TrapTNEI rs, imm: if(R[rs]!=zp(imm)) then Trap

N. Milenković, Arhitektura i organizacija računara 2011

ODLIKE VON NEUMANN-OVE ARHITEKTURE RAČUNARA

Računari o kojima smo govorili u ovom poglavlju često se nazivaju računarima sa von Neumann-ovom arhitekturom. Njih odlikuju sledeće karakteristike:

1. Jedinstvena adresiva memorija sa proizvoljnim pristupom. Programi i podaci čuvaju se u istoj memoriji.

2. Memorija je linearna. Ona je jednodimenzionalna, tj. oblika je vektora lokacija, čije adrese obrazuju niz tipa 0,1,2,... .

N. Milenković, Arhitektura i organizacija računara 2011

Odlike von Neumann-ove arhitekture računara

3. Nema eksplicitne razlike između instrukcija i podataka. Oni se razlikuju implicitno pri radu računara.

• Tako, objekat adresiran instrukcijom skoka tretira se kao instrukcija; operandi, koji se

d i t k iji bi j t ti j knavode u instrukciji sabiranja, tretiraju se kao podaci.

• Takav prećutni dogovor omogućuje, npr. obraćanje instrukciji kao podatku (i njeno modifikovanje), komponovanje instrukcije od reči podataka ili skok na reč podatka i tretiranje te reči kao instrukcije.

N. Milenković, Arhitektura i organizacija računara 2011

Odlike von Neumann-ove arhitekture računara

4. Namena podataka nije njihov neodvojivi sastavni deo. Nema, npr. nikakvih elemenata koji omogućuju eksplicitno razlikovanje niza bitova, koji predstavljaju broj sa pokretnom zapetom, od niza bitova koji predstavljaju nisku znakova. Namena podataka određuje se logikom programa. j g p g

• Ako računar pribavi iz memorije instrukciju sabiranja brojeva sa pokretnom zapetom, pretpostavlja se da su operandi brojevi sa pokretnom zapetom, i ti operandi se sabiraju prema pravilima sabiranja brojeva sa pokretnom zapetom.

• Na isti način može se obaviti sabiranje dva operanda, koji su stvarno nešto drugo, npr. niske znakova.

N. Milenković, Arhitektura i organizacija računara 2011