Presentation is loading. Please wait.

Presentation is loading. Please wait.

Arhitektura i organizacija računara

Similar presentations


Presentation on theme: "Arhitektura i organizacija računara"— Presentation transcript:

1 Arhitektura i organizacija računara
Skup instrukcija procesora

2 Računar na nivou pet funkcionalnih blokova
Staza podataka Upravljačka jedinica Memorija Ulazni uređaji Izlazni Centralni procesor Računar se sastoji od 5 osnovnih funkcionalnih celina: Staze podataka (data path) Upravljačke jedinice (control unit) Memorije Ulaznih uređaja (miš, tastatura, senzori,...) Izlazni uređaji (ekran, štampač, aktuatori, ..) Staza podataka i upravljačka jedinica čine centralni procesor (CPU). Staza podataka služi za obavljanje aritmetičko-logičkih operacija. U memoriji se čuvaju programi i podaci (savremene arhitekture imaju odvojene memorije za instrukcije i podatke – tvz. Hrvard arhitekturae) U/I uređaji služe za komunikaciju sa spoljnjim okruženjem. Ulazni uređaji omogućavaju unošenje programa i podataka u memoriju računara. Izlazni uređaji služe za prikaz rezultata ili za upravljanje drugim uređajimam. Upravljačka jedinica upravlja radom celog sistema (generiše sve neophodne signale)

3 Osnovni princip rada Formulisao John von Neuman:
Pribaviti instrukciju iz memorije Izvršiti instrukciju Zapamtiti rezultat u memoriju Instruction Fetch Decode Operand Execute Result Store Next Osnovni princip rada elektronskih računara formulisao je John Von Neumann karjem ih. Izvršenje svake instrukcije zahteva pribavljanje instrukcije i podataka iz memorije, dekodiranje, izvršenje i smeštanje rezultata u memoriju. Ovaj niz aktivnosti ponavlja se za svaku instrukciju koju treba izvršiti.

4 Projektovanje skupa naredbi:
Najvažnija projektantsa pitanja a) repertoar operacija koje su to operacije, koliko ih ima i koje su složenosti b) tipovi podataka – sa kojim tipovima podataka se operiše c) format naredbi – odredjuje dužinu naredbi, broj adresa, obim različitih polja ... d) registri – odredjuje broj CPU- ovih registara kojima se može pristupati od strane naredbi i način njihovog korišćenja e) adresiranje – odredjuje način ili načine rada pomoću kojih se specificira adresa operanda. Projektovanje skupa naredbi je jedan od najinteresantnijih i najviše analizaranih aspekata kod projektovanja računara

5 CPU Tipični CPU se sastoji od tri veće komponente:
Skupa registara, Aritmetičko-logičke jedinice (ALU) i upravljačke jedinice (Control unit – CU). Skup registara se razlikuje od jedne do druge arhitekture. Ovaj skup obično predstavlja kombinaciju registara opšte namene (General Purpose Registers – GPR) i posebne namene (Special Purpose Registers - SPR). GPR se mogu koristiti za bilo koju namenu i na njihov sadržaj može uticati programer. SPR imaju definisane funkcije unutar CPU-a, npr. programski brojač (Program Counter – PC), Instrukcioni registar (IR), itd.

6 Registri CPUa Registri CPUa se nalaze na vrhu memorijske hijerarhije računara Registri su memorijski elementi velike brzine Koriste se za privremeno pamćenje podataka i kontrolnih informacija Korisnički vidljivi registri Na raspolaganju su aplikativnim (asembleskim) programerima i koriste se da bi se smanjio broj obraćanja memoriji. Instrukcijama programa može se vršiti direktan uticaj na sadržaje ovih registara. Upravljački (control) i statusni registri koriste se za upravljanje radom CPUa većina nije (lako) vidljiva korisnicima Tipični CPU se sastoji od tri veće komponente: Skupa registara, Aritmetičko-logičke jedinice (ALU) i upravljačke jedinice (Control unit – CU). Skup registara se razlikuje od jedne do druge arhitekture. Ovaj skup obično predstavlja kombinaciju registara opšte namene (General Purpose Registers – GPR) i posebne namene (Special Purpose Registers - SPR). GPR se mogu koristiti za bilo koju namenu i na njihov sadržaj može uticati programer. SPR imaju definisane funkcije unutar CPU-a, npr. programski brojač (Program Counter – PC), Instrukcioni registar (IR), itd.

7 Korisnički vidljivi registri
Registri opšte namene (General purpose registers) mogu se koristiti za privremeno pamćenje celobrojnih operanada instrukcije, za adresiranje, za prenos parametara pri pozivu procedura. broj registara: 8 do 64 Registri za podatke u pokretnom zarezu (floating point – FP) Veličina registra od 32 do 64 bita Broj registara 4 do 32 Adresni registri Sadrže samo adresne informacije Bazni registri, segmentni registri, indeksni registri, stack pointeri Najčešće postoje odvojeni podskupovi registara za celobrojne podatke i podatke u pokretnom zarezu

8 Korisnički vidljivi registri (nast.)
Registar koda uslova (Condition Code Register -CCR) Vidljivi korisniku, ali im sadržaj postavlja CPU kao rezultat izvršenja neke operacije. Sadrži više bitova (engl. flags) sa određenim značenjem (zovu se još i statusni bitovi) statusni bitovi se mogu testirati nakon izvršenja ALU operacije Primeri flegova S (Sign) - indikator znaka, postavlja se ako je rezultat negativan, Z (Zero) - indikator nule, postavlja se ako je rezultat nula, C (Carry) - indikator prenosa, postavlja se ako se javi prenos, V (oVerflow) - indikator prekoračenja, postavlja se ako rezultat prekorači kapacitet formata, P (Parity Flag) - indikator parnosti, postavlja se ako je rezultat paran, Idr.

9 Primer registra koda uslova

10 Kontrolni i statusni registri
Ovi registri se koriste u toku pribavljanja, dekodiranja i izvršenja instrukcija. Mnogi od njih nisu vidljivi korisniku ili programeru neki su vidljivi, ali se ne mogu (lako) modifikovati Tipični registri Programski brojač (PC - Program counter) ukazuje na adresu sledeće instrukcije koja treba da se izvrši next Instrukcioni registar (IR - Instruction register) pamti instrukciju koja se trenutno izvršava Registar memorijskle adrese (MAR - Memory address register) Pamti adresu podatka koji treba da se pribavi iz (ili upiše u) memorije Prihvatni registar podaraka iz memorije (MDR - Memory data register) Podatak koji se čita iz memorije se prvo smešta u MDR a zatim u neki od registara opšte namene Podatak koji treba da se upiše u mem oriju prvo se upisuje u MDR a odatle u memoriju Program status word(s) nadskup registra koda uslova (CCR - condition code register) Koristi se za maskiranje prekida, za supervizorski režim rada, itd. Sadrži statusne informacije

11 Šta instrukcija treba da sadrži?
Informaciju o tome koja operacija treba da se obavi (opcode) Adresni deo sadrži operande ili reference (adrese) operanada opcode Adresni deo Operandi instrukcije se mogu naći u: samaj instrukciji, nekom od registara procesora, i memoriji procesora Koliko polja treba da bude u adresnom delu ako su u pitanju binarne operacije? Ove informacije mogu biti eksplicitno ili implicitno sadržane u instrukciji: Dva izvorna operanda Lokacija rezultata Adresa sledeće instrukcije koja treba da se obavi To znači da adresni deo treba da sadrži 4 polja 4-adresni računari se ne sreću u praksi Informacija o sledećoj instrukciji se pamti u posebnom registru CPUa – u programskom brojaču (PC) Svaka instrukcija mora sadržati informaciju neophodnu CPU-u da bi mogao da je izvrši. Te informacije su: kod operacije, izvorni operandi ili njihove adrese, adresa odredišnog operanda (rezultata), adresa sledeće instrukcije koju trebaa pribaviti. U mnogim slučajevima sledeća instrukcija koju treba pribaviti neposredno sledi iza tekuće instrukcije. U takvim slučajevima ne postoji eksplicitna referenca na sledeću instrukciju.

12 Podela procesora u odnosu na broj adresa u adresnom delu instrukcije
Tro – adresni U adresnom delu instrukcije se nalaze refernce dva izvorna operanda i odredišnog operanda Svi operandi su eksplicitno navedeni i nalaze se ili u registrima opšte namene ili u memoriji Npr. ADD R1, R2, R3 (dejstvo R1[R2]+[R3]) ADD A,B,C (dejstvo Mem[A] Mem[B]+Mem[C] ) Dvo – adresni Jedan operand ima dvostruku ulogu: jednovremeno predstavlja oznaku izvornog i odredišnog operanda Npr. ADD R1, R2 (dejstvo R1 [R1]+[R2]) Jedno – adresni (akumulatorske arhitekture) Jedan operand i rezultat se nalaze u posebnom registru CPUa koji se zove akumulator (ACC) Npr. LOAD A (dejstvo ACC  Mem[A]) ADD B (ACC  ACC +Mem[B]) Nula – adresni (stek arhitekture) Operandi se implicitno nalaze na vrhu stack-a Npr. PUSH A (instrukcija push smešta podatak na vrh stacka) PUSH B ADD POP C (instrukcija pop čita podatak sa vrha stack-a) Uglaste zagrade [ ] oznacavaju sadrzaj regisra ili memorijske lokacije

13 Formati 3- , 2-, 1- i 0- adresnih instrukcija

14 Akumulatorske i stack arhitekture su deo istorije
Dvo- i tro-adresne arhitekture se zovu registarske Dve klase: Memoriji se može pristupati preko bilo kojih instrukccija tvz. Registarsko-memorijske arhitekture Jedine instrukcije koje mogu direktno pristupati memoriji su LOAD i STORE, a sve ostale instrukcije su tipa registar-u-registar Zovu se load-store ili registarsko-registarske arhitekture Od 1980-ih sve arhitekture su load-store, jer je pristup registrima CPUa mnogo brži od pristupa memoriji

15

16 Primer C=A+B

17 Adresni režimi (načini adresiranja)
Govore o tome kako se određuje lokacija operanda Ove informacije se nalaze u adresnom delu instrukcije Informacija na osnovu koje se pronalazi podatak u memoriji zove se efektivna adresa (EA) U odnosu na način određivanja efektivne adrese može se razlikovati više adresnih režima rada procesora Broj adresnih režima se razlikuje od procesora do procesora.

18 Najčešće korišćeni adresni režimi rada
Neposredno adresiranje (Immediate) Direktno Indirektno (memorijsko) Registarsko Registarsko indirektno Sa pomerajem bazno indeksno PC-relativno Sa autoinkrementiranjem/dekrementiranjem

19 Neposredno adresiranje
Operand je deo instrukcije, tj. nalazi se u samoj instrukciji u adresnom polju Npr. ADD #5 dodaje 5 sadržaju akumulatora 5 je vrednost operanda Nema nikakvog obraćanja memoriji da bi se pribavio podatak Brz pristup operandu Instrukcija Opcode Operand

20 Direktno adresiranje adresno polje sadrži adresu operanda
Adresa na osnovu koje se pronalazi podatak u memoriji zove se efektivna adresa (EA) EA = A (adresno polje instrukcije) npr. ADD A dodaj sadržaj memorijske lokacije sa adrese A akumulatoru Jedno obraćanje memoriji je potrebno da bi se pribavio operand nisu potrebna nikakva dodatna izračunavanja da bi se odredila efektivna adresa. Ograničena je veličina adresnog prostora brojem bitova koji se koristi u adresnom polju npr ako se koristi 5 bitova za adresu operanda, onda se može adresirati samo 25 =32 memorijskih lokacija

21 Direktno adresiranje Instrukcija Opcode Adresa A Memorija Operand

22 Indirektno adresiranje
Adresni deo instrukcije ukazuje na adresu memorijske lokacije u kojoj se nalazi adresa operanda EA = (A) npr. ADD (A) zagrade uvek označavaju indirekciju Veliki adresni prostor 2n gde je n = širini reči (npr 32 bita) Potrebna su dva pristupa memoriji da bi se pribavio operand Sporije nego direktno adresiranje

23 Indirektno adresiranje
Instrukcija Opcode Adresa A Memorija Pointer na operand Operand Označava se ispred memorijske adrese ili registra navedenih u malim zagradama Primer

24 Registarsko adresiranje
Operand se nalazi u registru čije ime se nalazi u adresnom delu instrukcije EA = R Na raspolaganju je relativno mali broj registara opšte namene Potreban je mali broj bitova u adresnom polju kraće instrukcije, brže izvršenje Brži pristup operandima (nema obraćanja memoriji) s obzirom na ograničeni broj registara opšte namene, kompajler igra važnu ulogu u efikasnom korišćenju registara (ili programer ako programira na asembleru)

25 Registarsko adresiranje
Instrukcija Opcode adresa (oznaka) registra R Registri Operand

26 Registarsko indirektno
u adresnom delu instrukcije je ime registra u kome se nalazi efektivna adresa operanda EA = (R) Veliki adresni prostor (2n) manje obraćanja memoriji nego kod memorijski indirektnog adresiranja

27 Registarsko indirektno
Instrukcija Opcode adresa (oznaka) registra R Memorija Registri Pointer na Operand Operand

28 Adresiranje sa pomerajem (displacement)
EA = A + (R) Adresno polje sadrži dve vrednosti A = bazna vrednost R = registar koji sadrži pomeraj (displacement) u odnosu na baznu vrednost ili obrnuto (u registru R je bazna vrednost, a A je pomeraj) Tri varijante: bazno adresiranje indeksno PC – relativno adresiranje R = Program counter, PC EA = A + (PC) najčešće se koristi kod naredbi grananja

29 Adresiranje sa pomerajem (displacement)
Instrukcija Opcode Registar R Adresa A Memorija Registri + Pointer na Operand Operand

30 Bazno adresiranje A sadrži pomeraj (displacement)
R sadrži pointer na bazni registar R može biti implicitno ili eksplicitno naveden (u zavisnosti od konkretne arhitekture) omogućava relokativnost programa Označava se navođenjem pomeraja ispred oznake baznog registra između para malih zagrada Primer : 25(R4). Indeksno adresiranje operand u memoriji je adresiran zbirom sadržaja registara Rj i Rk A = Rj = baza (najčešće startna adresa polja) R = Rk indeksni registar koji sadrži pomeraj (displacement) EA = (Rj) + (Rk)

31 Indeksno adresiranje EA = (Rj) + (Rk)
Označavanje parom malih zagrada između kojih navodimo registre Rj i Rk povezane znakom +. Primer : (R7+R4).

32 Autoinkrementno/autodekrementno
Izvedeno iz registarsko indirektnog adresiranja Vrši se dodavanje (oduzimanje) inkrementa posle (pre) obraćanja memoriji autoinkrementno Označavanje navođenjem oznake korišćenog registra između malih zagrada, dodavanjem sufiksa +. Primer : (R3)+.

33 Primer: neposredno (immediate)
prog. brojac reg. opšte namene indeksni reg. U adresnom delu se nalazi vrednost operanda, tj nema pribavljanja Vrednost operanda : 500 (polje Mode definiše adresni režim)

34 Primer: direktno adresiranje
prog. brojac reg. opšte namene indeksni reg. U adresnom polju je adresa memorijske lokacije na kojoj se nalazi operand. Pribavljena vrednost sa adrese EA=500 je 800

35 Primer: memorijsko indirektno
prog. brojac reg. opšte namene indeksni reg. U adresnom delu instrukcije se nalazi adresa memorijske lokacije u kojoj je adresa operanda. Operand se pribavlja sa adrese EA=800, pribavljena vrenost je 300

36 Primer: registarsko adresiranje
prog. brojac R1 reg. opšte namene indeksni reg. U adresnom delu je oznaka registra u kome se nalazi operand Pribavljena vrednost je 400

37 Primer: registarsko indirektno
prog. brojac R1 reg. opšte namene indeksni reg. U adresnom delu je oznaka registra u kome je zapamćena memorijska adresa operanda Operand se pribavlja sa adrese EA=400 Pribavljena vrednost je 700

38 Primer: indeksno adresiranje
prog. brojac reg. opšte namene indeksni reg. U adresnom polju je startna adresa (najčešće polja)a u indeksnom registru XR pomeraj u odnosu na startnu adresu Operand se pribavlja sa adrese EA= =600 Pribavljena vrednost je 900

39 Primer: PC relativno prog. brojac reg. opšte namene indeksni reg. Vrednost PC nakon pribavljanja tekuće instrukcije se povećava za 2, pa je PC=PC+2=202 U adresnom delu instrukcije je pomeraj u koji se dodaje vrednosti PC Operand se pribavlja sa adrese EA= =702 Pribavljena vrednost je 325

40 Primer: sa autodekrementiranjem
prog. brojac R1 reg. opšte namene indeksni reg. Vrednost registra R1 se dekrementira (smanji) za 1 , a zatim se sa te adrese pribavlja operand EA=400-1=399 Pribavljena vrednost je 450

41 Primer instrukcije Način adresiranja Značenje Kada se koristi
Registarsko Add R4, R3 R4  R4 + R3 Kada su operandi u registrima. Neposredno Add R4, #3 R4  R4 + 3 Za konstante. Bazno ili pomerajno Add R4,100(R1) R4  R4 + M[100+R1] Za pristupanje lokalnim promenljivim. Registarsko indirektno Add R4, (R1) R4  R4 + M[R1] Pristupanje korišćenjem pokazivača ili izračunate adrese. Indeksno Add R3, (R1+R2) R3  R3 + M[R1+R2] Pri adresiranju polja: R1-početak polja, R2-indeksni iznos. Direktno ili apsolutno Add R1, (1200) R1  R1 + M[1200] Za pristupanje statičkim podacima. Memorijsko indirektno Add R1  R1 + M[M[1200]] Ako je 1200 adresa pokazivača P, ovo daje operand adresiran sa P. Auto- inkrementno Add R1, (R2)+ R1  R1+ M[R2] R2  R2 + d Za prolaz kroz polje elemenata unutar petlje; d je dužina elemenata polja. dekrementno Add R1, (R2) R2  R2  d Kao autoinkrementno.

42 Tipovi operanada Tip operanda nam govori o tome koje operacije se mogu izvršavati nad operandom, opseg vrednosti, i način predstavljanaja u memoriji računara Tip podatka je kodiran samom instrukcijom Tj. na osnovu koda operacije se zna kog tipa su operandi Najčešći tipovi operanada Celobrojni (intrger) Celobrojni podaci se najčešće predstavljaju u dvojičnom komplementu, mogu biti veličine polu-reči (16 bitova) ili reči (32 bita) Realni predstavljeni u pokretnom zarezu (floating point - FP) jednostruke tačnosti (single precision) Za FP podatke se najčešće korist standard IEEE 754 (podaci se predstavljaju u obliku nirmalizovane mantise i eksponenta 32 bita – jedna reč Realni predstavljeni u pokretnom zarezu (floating point - FP) dvostruke tačnosti (double precision) 64 bita – dve reči Karakteri najčešće kodurani ASCII kodom dužine 8 bitova (byte)

43 Tipovi naredbi Skup naredbi jedne arhitekture treba da bude kompletan, tj. da omogući korisniku da definiše bilo koji zadatak Pet grupa naredbi (instrukcija) aritmetičke (sabiranje, oduzimanje, množenje, deljenje za celobrojne i FP podatke) logičke (i, ili, ne, pomeranje, ...) instrukcije za prenos podataka unutar sistema (load, store, move, push, pop) U/I instrukcije (prenos podataka između računara i U/I) upravljačke instrukcije (utiču na redosled izvršenja instrukcija u programu: instrukcije uslovnog grananja, bezuslovnog skoka, poziva procedura, povratka iz procedura) Postoje dva prilaza u projektovanju skupa instrukcija (ISA) arhitekture sa malim brojem instrukcija arhitekture sa velikim brojem instrukcija

44 Aritmetičke naredbe najveći broj mašina poseduje osnovne aritmetičke operacije kao što su: sabiranje, oduzimanje, množenje i deljenje. Često u ovu grupu spadaju i jedno-operandske naredbe: a) apsolutna vrednost b) negacija c) inkrementiranje d) dekrementiranje. Aritmetičke naredbe obavlja ALU ili specijalno projektovani hardver, dobija se rezultat i postavljaju se markeri (u CCR registru) čije se stanje u daljem programskom toku može testirati

45 Primeri aritmetičkih naredbi
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 , 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),

46 Logičke naredbe Naredbe pomoću kojih se manipuliše sa individualnim bitovima podataka, a zasnivaju se na Boolean-operacijama. Osnovne operacije iz ove grupe su NOT, OR, XOR, i AND. Tu spadaju još i naredbe za logičko i aritmetičko pomeranje ulevo i udesno, kao i rotiranje ulevo i udesno

47 Primeri logičkih instrukcija
Neka su Rj i Rk osmobitni registri sa sadržajima (Rj)= i (Rk)= AND Ri,Rj,Rk RiRj  Rk , (Ri)= OR Ri,Rj,Rk RiRj  Rk , (Ri)= XOR Ri,Rj,Rk RiRj  Rk , (Ri)= NOT Ri Ri invertovan_svaki_bit(Ri) pre instrukcije (Ri)= posle instrukcije NOT Ri (Ri)=

48 Primeri instrukcija pomeranja
SHL Ri,Rj,bp Ri  Rj « bp (SHift Left – SHL) Primer SHL Ri,Rj,5 (Rj)= (Ri)= , SHR Ri,Rj,bp Ri  Rj » p (SHift Right – SHR) Primer SHR Ri,Rj,3 (Ri)= , SHRA Ri,Rj,bp RiRj » bp (aritmetičko pomeranje) Primer SHRA Ri,Rj,3 (Ri)= , ROL Ri,Rj,bp RiRj «! bp (ciklično pomeranje) Primer ROL Ri,Rj,5 (Ri)= Razlika izmedju logičkog i aritmetičkog pomeranja je u tome što se znak kod aritmetičkog pomeranja kopira u onoliko pozicija za koliko se vrši pomeranje

49 Primeri instrukcija za prenos podataka
LW R1, 30 (R2) dejstvo R1 Mem[30 +[R2]] MOVE R1, R2 R1 R2 Naredbe za rad sa stekom PUSH : POP: dejstvo: SP  SP-1, dejstvo DReg  S[SP], S[SP]  DReg SP  SP+1.

50 Tipične instrukcije za prenos podataka

51 Instrukcije za upravljanje tokom programa
Grupa instrukcija za upravljanje tokom programa sadrži instrukcije bezuslovnog (skokova ) i uslovnog grananja, poziva procedura (potprograma) i povratka iz procedura (potprograma). Tabela (sledeći slajd) 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č.

52 Instrukcije za upravljanje tokom programa na tipičnom RISC procesoru i njihova dejstva
Naziv instrukcije Primer instrukcije Značenje Jump (skok) J ime PC  PC ime ; -2p-1 ime < 2p-1 Jump register (skok određen registrom) JR R3 PC  R3 Branch if equal zero (grananje ako je nula) BEQZ R4, ime if (R4==0) PC  PC ime else PC  PC + 4 ; -2q-1  ime < 2q-1 Jump and link (skoči i poveži) JAL ime R31  PC + 4, -2p-1  ime < 2p-1 Jump and link register (skoči i poveži preko registra) JALR R2 PC  R2 Branch if equal zero and link (grananje i povezivanje ako je nula) BEQZAL R4, ime if (R4==0) R31  PC + 4, PC  PC ime

53 Pozivanje procedura Pri pozivu i izvršenju procedure treba obaviti sledeće aktivnosti: Smestiti parametre na mesto gde im procedura može pristupiti, za prenos parametara (argumenata) i vraćanje rezultata, kao i za čuvanje adrese povratka u pozivajući program, koriste se registri procesora U MIPS arhitekturi za prenos parametara (argumenata) koriste se registri R4-R7 Preneti upravljanje proceduri, (naredbe JAL i JALR sa prethodnog slajda) Zatražiti memorijske resurse potrebne proceduri, Izvršiti proceduru, Smestiti rezultate procedure na mesto gde im pozivajući program može pristupiti, U MIPS arhitekturi za vraćanje rezultata u pozivajući program koriste se registri R2-R3 Vratiti upravljanje na pozivnom programu adresa povratka iz procedure pamti se u registru određenom arhitekturom (u MIPS arhitekuri to je registar R31: povratak iz procedure u pozivajući program vrši se instrukcijom JR R31).

54 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).

55 Formati instrukcija Procesor može direktno izvršavati samo binarno kodirane instrukcije. Naprimer, u MIPS32 arhitekturi, 32-bitni binarni broj predstavlja instrukciju ANDI R5, R3, #0x0F0F , čije je dejstvo R5  R3 AND 0x00000F0F Formati instrukcija definišu dužine instrukcija i podelu instrukcija na odgovarajuća polja, koja sadrže kodove operacija i adrese operanada ili same operande. Po jedan format instrukcija uvodi se za podskup instrukcija koje se mogu predstaviti na isti način (npr. za ALU instrukcije, Instrukcije za prenos podataka, instrukcije za upravljanje tokom izvršenja programa). Polje Kod operacije (KOp ili Op) mora imati dovoljno bitova da se jednoznačno identifikuje svaka instrukciju iz skupa 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. Broj različitih formata instrukcija razlikuje se od arhitekture do arhitekture. kreće se od 3 (za RISC procesore sa jednostavnom arhitekturom) preko 6 (u IBM S/370) do 7 (u Intelovoj 80X86 arhitekturi).

56 Adresiranje podataka i redosled bajtova u podacima
Memorija je linearna najmanja adresibilna jedinica memorije je bajt adrese čine niz oblika 0,1,2,... kako se u memoriju smeštaju podaci koji su veći od 1 bajta? postoje dve konvencije za redosled smeštanja bajtova unutar većeg objekta (reči, dvostuke reči,...) Little endian – bajt najmanje težine nalazi se na najmanjoj adresi Big endian – bajt najveće težine nalazi se na najmanjoj adresi redosled smeštanja podataka je bitan ako treba da komuniciraju dva računara koji koriste različite načine smeštanja podataka .

57 Poravnati (aligned) i neporavnati (nonaligned) pristup memoriji
Drugo važno pitanje kada je u pitanju pristup memoriji je, da li kada se pristupa podacima koji su veći od 1 bajta pristup mora biti poravnat ili ne pristup objektu veličine S bajtova je poravnat (aligned) ako važi da je A mod S=0, gde je A adresa objekta (u suprotnom pristup nije poravnat) npr ako je S=4, ako je reč o poravnatom pristupu onda A može biti 0,4,8,...

58

59 Sistem izuzetaka (prekida)
Termin izuzetak (engl. exception) ili prekid (engl. interrupt) koristi se u širokom smislu za bilo koji redak ili neočekivani događaj koji uzrokuje da CPU sa izvršenja tekućeg programa pređe na drugi program koji opslužuje prekid. zahtev za prekid se može prihvatiti tek nakon okončanja tekuće instrukcije Ima instrukcija Za izvršenje Pribaviti instrukciju Iz memorije Dekodirati instrukciju Izvršiti Ima zahteva za prekid Preći na Prekidni program da ne Start Postoji dosta konfuzije u literatuti oko korišćenja termina INTERRUPT (prekid) i EXCEPTION (izuzetak) Neki autori pod pojmom izuzetak podrazumevaju samo događaje koji nastupaju unutar CPUa (npr deljenje nulom, nepostojeća instrukcija, ilegalna memorijska adresa, itd.), a pod pojmom PREKID događaj koji potiče iz spoljeg izvora (recimo U-I uređaja). Pod pojmom trap se podrazumeva korisnički programirani izuzetak (recimo kod debagiranja). Neki autori koriste termin prekid da označe bilo koju aktivnost koja uzrokuje da CPU napusti izvršenje tekućeg programa. Neki autori jednostavno za sve koriste termin izuzetak (exception)

60 Tipovi izuzetaka ( prekida)
I podela Sinhroni nastaju unutar CPU-a, kada on ustanovi ispunjenje jednog ili više unapred definisanih uslova za vreme izvršenja neke instrukcije (to su usuštini izuzeci u užem smislu reči) Asinhroni događaji koji nastaju van CPU-a, recimo od U/I urđaja. Nisu ni ukakvoj relaciji sa instrukcijom koja se trentno izvršava. (to su prekidi u užem smislu reči) II podela Maskirljivi mogu selektivno privremeno zabraniti Nemaskirljivi ne mogu se zabraniti maskiranjem (npr parity bit error kod memorije) CPU se o prekidima koji potiču iz spoljnjeg izvora obaveštava preko izvesnog broja ulaznih priključaka Ulazni priključci procesora za podnošenje zahteva za maskirljive i nemaskirljive prekide su odvojeni. Sinhroni prekidi će se desiti uvek na istom mestu u programu koji se izvršava sa istim skupom podataka. Nastupanje sinhronih prekida je teško predvideti.

61 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. Izvor prihvaćenog prekida mora se identifikovati, da bi procesor mogao da pređe na izvršenje odgovarajućeg programa koji opslužuje prihvaćeni prekid.

62 ne

63 Aktivnosti procesora po prihvatanju zahteva za prekid
CPU šalje potvrdu o prihvatanju zahteva za prekid i identifikuje izvor prekida, identifikator izvora prekida transformiše u adresu početka prekidnog programa. CPU 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 Prelazak na prekidni program PC, PSW i eventualno drugi sistemski registri pune se podacima koji određuju prelazak procesora na prekidni program Izvršava se telo prekidnog programa, odnosno aktivnosti zbog kojih je ovaj program aktiviran. Povratak na prekinuti program Obnavljaju se zapamćeni sadržaji PSW-a, PC-a i eventualno drugih sistemskih registara prekinutog programa Dozvoljava se prihvatanje novih prekida. (Ovim se vraća u prekinuti program, čije se izvršenje nastavlja.)

64 Pregled karakteristika izuzetaka (prekida)
Tip izuzetka Sinhroni-asinhroni Zahtevan od korisnika-prinudni Maskirljiv-nemaskirljiv od korisnika Unutar-između instrukcija Sa završetkom-nastavkom Zahtevi od U-I uređaja asinhroni prinudni nemaskirljiv između nastavkom Pozivanje usluga operativnog sistema iz programa korisnika sinhroni od korisnika Trasiranje izvršenja instrukcija maskirljiv Prekidne tačke Prekoračenje i podkoračenje u celobrojnoj aritmetici unutar Anomalije u aritmetici sa pokretnom zapetom Greška stranice Neporavnati pristup memoriji Povreda zaštite memorije Korišćenje nedefinisane instrukcije završetkom Greške u radu hardvera Nestanak napona napajanja

65 Izvori izuzetaka (prekida)
Prekidi mogu biti generisani od različitih izvora unutar ili van CPU-a. zahtevi od U-I uređaja, pozivanje usluga operativnog sistema iz programa korisnika, trasiranje izvršenja instrukcija, prekidne tačke (prekidi zahtevani od programera), prekoračenje i potkoračenje u celobrojnoj aritmetici, anomalije u aritmetici sa pokretnim zarezom greška stranice (odsustvo stranice u glavnoj memoriji), neporavnati pristup memoriji (ako takav nije dopustiv), povreda zaštite memorije, korišćenje nedefinisane instrukcije, greške u radu hardvera, nestanak napona napajanja.

66 Dva prilaza u projektovanju ISA: CISC i RISC
Karakteristike CISC (Complex Instruction Set Computers) Tokom 60-tih i 70-ih god. 20. veka osnovni pravac u razvoju računara ogledao se u povećanju kopleksnosti CPU. Ta kompleksnost se ogledala u: Povećanju broja instrukcija ( ) Povećanju kompleksnosti instrukcija Povećanju mogućih načina adresiranja (npr. MC je imao 18 adresnih režima) Veliki broj specijalizovanih a mali broj registara opšte namene Instrukcije su različite dužine (od 1 do 11 reči kod MC 68020) Mikroprogramsko upravljanje (zahteva se velika mikroprogramska memorija zbog složenih instrukcija) Razlozi: poboljšanje performansi i pojednostavljenje pisanja kompilatora kako skup instrukcija pojednostavljuje pisanje kompilatora?

67 CISC – faze u izvršenju instrukcija
IF – pribavljanje instrukcije (Instruction fetch) ID – dekodiranje instrukcije (Instruction Decode) EA – izračunavanje efektivne adrese operanada OF – pribavljanje operanada (Operand Fetch) EXE – izvršenje instrukcije (Execution)

68 Instruction Encoding:
Primer Motorola 680X0 Primer Motorola 680X0 18 addressing modes: Data register direct. Address register direct. Immediate. Absolute short. Absolute long. Address register indirect. Address register indirect with postincrement. Address register indirect with predecrement. Address register indirect with displacement. Address register indirect with index (8-bit). Address register indirect with index (base). Memory inderect postindexed. Memory indirect preindexed. Program counter indirect with index (8-bit). Program counter indirect with index (base). Program counter indirect with displacement. Program counter memory indirect postindexed. Program counter memory indirect preindexed. Operand size: Range from 1 to 32 bits, 1, 2, 4, 8, 10, or 16 bytes. Instruction Encoding: Instructions are stored in 16-bit words. the smallest instruction is 2- bytes (one word). The longest instruction is 5 words (10 bytes) in length.

69 Primer Intel X86, 386/486/Pentium
12 adresinh režima: Register. Immediate. Direct. Base. Base + Displacement. Index + Displacement. Scaled Index + Displacement. Based Index. Based Scaled Index. Based Index + Displacement. Based Scaled Index + Displacement. Relative. veličina operanada: Can be 8, 16, 32, 48, 64, or 80 bits long. podržava rad sa stringovima. Instruction Encoding: The smallest instruction is one byte. The longest instruction is 12 bytes long. The first bytes generally contain the opcode, mode specifiers, and register fields. The remainder bytes are for address displacement and immediate data.

70 Karaktersitike RISC – Reduced Instruction Set Computers
RISC prilaz je upravo suprotan CISC prilazu Tokom višegodišnjeg praćenja i merenja programa ustanovljeno je da se samo 25% instrukcija iz kompleksnog skupa instrukcija često koristi (95% vremena) 75% instrukcija koje po pravilu zahtevaju velike mikrokodove i veliku mikroprogramsku memoriju se veoma retko koriste IDEJA: Instrukcije koje se često koriste implementirati hardverski, a instrukcije koje se retko koriste softverski Kod CISC upravljačka jedinica zauzima 40-60% oblasti na čipu, a kod RISC približno 10%. Ostatak oblasti na čipu se može iskoristiti za druge komponente – registre ili on chip cache

71 RISC (Reduced Instruction Set Computer) - karakteristike
Relativno mali broj instrukcija (obično < 100: i860 –82 instrukcije, MC – 51 instrkcija) Sve instrukcije su iste dužine (32 bita) Mali broj načina adresiranja Pristup memoriji se obavlja isključivo preko LOAD i STORE instrukcija Veliki broj registara opšte namene (32 – 192). Najveći broj instrukcija je tipa registar-u-registar Hardversko (a ne mikroprogramsko) upravljanje Jako izražena protočnost u obradi instrukcija Odvojeni keš za instrukcije i za podatke Moćni kompilatori

72 Instruction Encoding:
Primer RISC - SPARC 5 addressing modes: Register indirect with immediate displacement. Register inderect indexed by another register. Register direct. Immediate. PC relative. Operand sizes: Four operand sizes: 1, 2, 4 or 8 bytes. Instruction Encoding: Instruction set has 3 basic instruction formats with 3 minor variations. All are 32 bits in length.

73 Primer RISC - Compaq Alpha AXP
4 addressing modes: Register direct. Immediate. Register indirect with displacement. PC-relative. Operand sizes: Four operand sizes: 1, 2, 4 or 8 bytes. Instruction Encoding: Instruction set has 7 different formats. All are 32 bits in length.

74 Primer: MIPS arhitektura
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 godine pod 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.

75 Registri 32 registra opšte namene (32-bitna), koji obrazuju polje celobrojnih registara Dva od 32 GPR registra imaju posebne uloge: R0 je ožičen na sadržaj 0 vrednost 0 ili kao odredišni registar kada rezultat operacije treba odbaciti, R31 je odredišni registar u instrukcijama JAL, BLTZAL, BLTZALL, BGEZAL, i BGEZALL bez njegovog eksplicitnog navođenja u ovim instrukcijama; van njih on se koristi kao i drugi GPR registri. programski brojač PC, koji nije arhitekturno vidljivi registar, na koji se samo indirektno utiče nekim instrukcijama 32 FP registra opšte namene za podatke u pokretnom zarezu

76 Načini adresiranja MIPS arhitektura podržava sledeće načine adresiranja: neposredno, registarsko, bazno (pomerajno), i PC-relativno (samo u instrukcijama grananja).

77 Formati instrukcija Sve instrukcije su dužine 32 bita, i moraju biti poravnato smeštene u memoriji računara. Postoje tri formata instrukcija: R, I , J op - kod operacije instrukcije, rs - indeks (identifikator) prvog izvorišnog registra instrukcije, rt - indeks drugog izvorišnog registra ili 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, immediate - neposredni operand u aritmetičko-logičkim instrukcijama

78 Formati instrukcija (nast.)
R format namenjen je aritmetičko-logičkim instrukcijama i instrukcijama pomeranja. I format namenjen je aritmetičko-logičkim instrukcijama, instrukcijama uslovnog grananja i instrukcijama obraćanja memoriji (Load i Store). J format namenjen je instrukcijama skoka i bezuslovnog poziva procedura

79 Skup instrukcija i njihovo značenje
Mnem. oznaka Opis Primer i dejstvo CPU Load/Store instrukcije sa poravnatim pristupima memoriji LB LBU SB LH LHU SH LW LWU SW Load Byte Load Byte Uns Store Byte Load Halfword Load Halfword Uns Store Halfword Load Word Load 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] CPU Load/Store instrukcije sa neporavnatim pristupima memoriji LWL LWR SWL SWR Load Word Left Load Word Right Store 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 NOP BREAK SYSCALL No Operation Breakpoint System 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

80 ALU instrukcije sa neposrednim operandom
Mnem. oznaka Opis Primer i dejstvo ALU instrukcije sa neposrednim operandom ADDI ADDIU SLTI SLTIU ANDI ORI XORI LUI Add Imm Word Add Imm Uns Word Set on Less Than Imm Set on Less Than Imm. Uns And Imm Or Imm Exclusive Or Imm Load 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]0 SLTIU 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 instrukcije ADD ADDU SUB SUBU SLT SLTU AND OR XOR NOR CLO CLZ Add Word Add Uns Word Subtract Word Subtract Uns Word Set on Less Then Set on Less Then Uns And Or Exclusive Or Nor 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]0 SLTU 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]

81 Instrukcije pomeranja
Mnem. oznaka Opis Primer i dejstvo Instrukcije pomeranja SLL SRL SRA SLLV SRLV SRAV Shift Word Left Logical Shift WordRight Logical Shift Word Right Arithmetic Shift Word Left Logical Variable Shift Word Right Logical Variable Shift Word Right Arit. Variable. SLL rd, rt, sa: R[rd]R[rt]<< sa SRL 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 MULT MULTU MADD MADDU MSUB MSUBU MUL DIV DIVU MFHI MTHI MFLO MTLO Multiply Word Multiplay unsigned Word Multiplay and Add Word to HI,LO Mult. unsigned. and Add Word to HI,LO Mult. and Subtract Word to HI,LO Mult. unsign. and Subtract Word to HI,LO Multiplay Word to GPR Divide Word Div. Uns Word Move From HI Move To HI Move From LO Move To LO 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 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-bitnog proizvoda 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], **

82 Instrukcije skoka-skokovi unutar podru~ja od 256 MB
Mnem. oznaka Opis Primer i dejstvo Instrukcije skoka-skokovi unutar podru~ja od 256 MB J JAL Jump Jump 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 JR JALR Jump Register Jump 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-relativne B BAL BEQ BNE BEQL BNEL Unconditional Branch Branch and Link Branch on Equal Branch on Not Equal Branch on Equal Likely*** Branch on Not Equal Likely** B pom: izvr{iti instrukciju u slotu ka{njenja, PCPC+4+(znak_pro{(pom))<<2 BAL pom: izvr{iti instrukciju u slotu ka{njenja, R[31] PC+8, PCPC+4+(znak_pro{(pom))<<2 BEQ 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+8 BNE rs, rt, pom: izvr{iti instrukciju u slotu ka{njenja, if(R[rs] !=R[rt]) BEQL 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 BNEL 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

83 Instrukcije uslovnog grananja sa pore|enjem sa nulom, PC-relativne
Mnem. oznaka Opis Primer i dejstvo Instrukcije uslovnog grananja sa pore|enjem sa nulom, PC-relativne BLEZ BGTZ BLTZ BGEZ BLTZAL BGEZAL Branch on LT or Eq. to Zero Branch on Greater Than Zero Branch on LT Zero Branch on GT or Eq. to Zero Branch 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 MOVN MOVZ MOVF MOVT Move Conditional on Not Zero Move Conditional on Zero Move Conditional on FP False Move 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 registra TGE TGEU TLT TLTU TEQ TNE Trap if Greater Than or Equal Trap if Greater Than or Equal Unsigned Trap if LT Trap if LT Uns Trap if Equal Trap if Not Equal TGE rs, rt: if(R[rs]>=R[rt]) then Trap TGEU rs, rt: if(R[rs]>=R[rt]) then Trap TLT rs, rt: if(R[rs]<R[rt]) then Trap TLTU rs, rt: if(R[rs]<R[rt]) then Trap TEQ rs, rt: if(R[rs]==R[rt]) then Trap TNE rs, rt: if(R[rs]!=R[rt]) then Trap Uslovne instrukcije trapa sa pore|enjem sa neposrednim operandom TGEI TGEIU TLTI TLTIU TEQI TNEI Trap if Greater Than or Equal Immediate Trap if Greater Than or Equal Imm Uns Trap if LT Imm Trap if LT Imm Uns Trap if Equal Imm Trap if Not Equal Imm TGEI rs, imm: if(R[rs]>=zp(imm)) then Trap TGEIU rs, imm: if(R[rs]>=zp(imm)) then Trap TLTI rs, imm: if(R[rs]<zp(imm)) then Trap TLTIU rs, imm: if(R[rs]<zp(imm)) then Trap TEQI rs, imm: if(R[rs]==zp(imm)) then Trap TNEI rs, imm: if(R[rs]!=zp(imm)) then Trap


Download ppt "Arhitektura i organizacija računara"

Similar presentations


Ads by Google