34
Karakteristike RISC procesora format instrukcije fiksna 32-bitna instrukcija taktna frekvenca do 1 GHz polje registara 32-192 registra opšte namene, izdvojeni integer i float- point registri broj instrukcija i tipovi oko 100, najveći broj je registarski zasnovan sa izuzetkom Load/Store adresni način rada ograničen na 3-5, samo Load/Store adresiraju memoriju dizajn keša najveći broj koristi podeljeni keš za instrukcije i podatke CPI, prosečni CPI 1 ciklus za jednostavne operacije, 1.5 ciklus u proseku upravljačka jedinica CPU- a najveći broj koristi direktno upravljanje bez upravljačke memorije tipični reprezentativni procesori Sun Ultra Spars, MIPS R10000, Power PC 604, HP PA-8000, Digital 21264

Karakteristike RISC procesora

  • Upload
    elliot

  • View
    99

  • Download
    0

Embed Size (px)

DESCRIPTION

Karakteristike RISC procesora. Arhitektura MIPS procesora - PowerPoint PPT Presentation

Citation preview

Page 1: Karakteristike RISC procesora

Karakteristike RISC procesoraformat instrukcije fiksna 32-bitna instrukcija

taktna frekvenca do 1 GHz

polje registara 32-192 registra opšte namene, izdvojeni integer i float-point registri

broj instrukcija i tipovi oko 100, najveći broj je registarski zasnovan sa izuzetkom Load/Store

adresni način rada ograničen na 3-5, samo Load/Store adresiraju memoriju

dizajn keša najveći broj koristi podeljeni keš za instrukcije i podatke

CPI, prosečni CPI 1 ciklus za jednostavne operacije, 1.5 ciklus u proseku

upravljačka jedinica CPU-a najveći broj koristi direktno upravljanje bez upravljačke memorije

tipični reprezentativni procesoriSun Ultra Spars, MIPS R10000, Power PC 604, HP PA-8000, Digital 21264

Page 2: Karakteristike RISC procesora

Arhitektura MIPS procesora

MIPS procesori su tipični predstavnici RISC koncepta sa Load/Store arhitekturom. To zapravo znači da se sve operacije izvršavaju nad operandima koji se nalaze u registrima na čipu, a memoriji se pristupa isključivo preko Load (memorija-registar) i Store (registar-memorija) instrukcija. Na taj način značajno se poboljšavaju performanse procesora jer je vreme pristupa memoriji znatno duže od vremena pristupa registrima. Takođe, spoljnu magistralu MIPS procesora čine dve posebne magistrale, jedna za pristup instrukcijama, a druga za pristup podacima. Time se pristup podacima obavlja paralelno sa pribavljanjem instrukcija čime se eliminišu konflikti između instrukcija i podataka koji realno postoje kod sistema zasnovanih na jedinstvenoj magistrali.

Page 3: Karakteristike RISC procesora

Pojednostavljena arhitektura MIPS procesora

Page 4: Karakteristike RISC procesora

Memorija

Memorija je bajt adresabilna sa 32-bitnim adresama (od 0x00000000 do 0xffffffff). Koristi se tzv. little- endian način rada, što zapravo znači da se u memoriju na LS bajt poziciju upisuje bajt najmanje težine.

Page 5: Karakteristike RISC procesora

Registri

MIPS arhitektura definiše sledeće CPU registre: - 32 registra opšte namene, svi obima 32 bita, ovi registri čine RF polje - par specijalnih registara HI i LO koji se koriste za čuvanje međurezultata kod izvršavanja operacija množenja i deljenja. - programski brojač (PC),koji čuva adresu naredne instrukcije. Kako su sve instrukcije MIPS arhitekture dužine 32 bita PC se nakon izvršenja svake instrukcije uveća za 4. Na sledećoj slici prikazani su registri RF polja i njihova namena.

Page 6: Karakteristike RISC procesora
Page 7: Karakteristike RISC procesora

Formati instrukcija

Korišćeni su sledeći simboli: - op- 6-bitni opkod instrukcije - rs- 5-bitni specifikator izvorišnog registra - rd- 5-bitni specifikator odredišnog registra - rt - 5-bitni specifikator cilnog (izvorišnog/ odredišnog) registra ili uslova grananja - imm- 16-bitni neposredni razmeštaj koji se odnosi na grananje ili adresni razmeštaj - ciljna adresa - 26-bitna ciljna adresa grananja/skoka - shamt- 5-bitna informacija koja ukazuje na iznos pomeranja - funct- 6-bitno funkcijsko polje

Page 8: Karakteristike RISC procesora

Načini adresiranja operanada

Procesor MIPSxx koristi sledeća četiri adresna načina rada:

1. registarsko adresiranje:operand je u registru2. bazno adresiranje sa razmeštajem: operand je

u memorijskoj lokaciji čija je adresa zbir sadržaja registra i polja "adresa" instrukcije

3. neposredno adresiranje: operand je konstanta i sastavni je deo instrukcije

(polje "imm")4. PC relativno adresiranje: adresa predstavlja

zbir PC-a i sadršaja polja "adresa" instrukcije

Page 9: Karakteristike RISC procesora

Skup instrukcija

Sve instrukcije MIPS arhitekture imaju fiksni obim od 32 bita i mogu se podeliti na sledeće tri grupe: - regularne instrukcije za manipulisanje integer vrednostima - makro-instrukcije ili tzv. pseudoinstrukcije - regularne instrukcije za manipulisanje float-point vrednostima

Page 10: Karakteristike RISC procesora

Regularne instrukcije za manipulisanje integer vrednostima

Page 11: Karakteristike RISC procesora
Page 12: Karakteristike RISC procesora

Lista pseudo (makro) instrukcija

Page 13: Karakteristike RISC procesora
Page 14: Karakteristike RISC procesora

Primeri pseudo instrukcije MIPSxx arhitekture

Kao što je već naglašeno u MIPS arhitekturi postoji određen broj makro ili pseudo instrukcija za manipulisanje integer vrednostima. Svaku od ovih instrukcija asembler radi izvršenja prevodi u skup od jedne ili više osnovnih (regularnih) instrukcija. Na sledujućim slajdovima dat je detaljniji opis nekoliko pseudo instrukcija. Za svaku od njih naveden je naziv (na engleskom), sintaksa, broj reči koje instrukcija zauzima, vreme potrebno za izvršenje instrukcije (broj ciklusa), zatim kratak opis i skup regularnih instrukcija kojima se data pseudo instrukcija zamenjuje.

Page 15: Karakteristike RISC procesora

Absolute Value: abs Rd, Rs 3/3

U registar Rd smešta se apsolutna vrednost sadržaja registra Rs.

addu Rd, $0, Rsbgez Rs, skipsub Rd, $0, Rs

skip:

Primer:lui $1, 0xffffor $t1, $1, -5 # $t1 = -5addu $t2, $0, $t1 # abs $t2, $t1 bgez $t1, skip sll $0, $0, 0 sub $t2, $0, $t1 skip:

Page 16: Karakteristike RISC procesora

Load Address: la Rd, Label 2/2

Adresa koja odgovara labeli Label se učitava u registar Rd.

lui $1, HI(Label)ori Rd, $1, LO(Label)

Primer:la $t0, targetjr $t0...target:...

Page 17: Karakteristike RISC procesora

Load Immediate: li Rd, value 2/2

32-bitna vrednost value se učitava u registar Rd.

lui $1, HI(value)ori Rd, $1, LO(value)

Primer:lui $1, 0xffff # negativne vrednostior $t1, $1, -354ori $t2, 45000 # pozitivne vrednosti

# do 16 bita (0...65 536)lui $1, 0x1234 # pozitivne vrednosti odor $t3, $1, 0x5678 # 16 od 32 bita

Page 18: Karakteristike RISC procesora

Unaligned Load Word: ulw Rd, n(Rs) 2/2Reč sa adrese n(Rs) se učitava u registar Rd. Adresa ne mora biti poravnata.

lwl Rd, (n+3)(Rs)lwr Rd, n(Rs)

Primer:lui $t0, 0x1000 # $t0=0x10000000lui $1, 0x0123ori $1, 0x4567 # $1=01234567sw $1, 0($t0)lui $1, 0x89ABori $1, 0xCDEFsw $1, 4($t0) # 0 1 2 3 4 5 6 7 # 67 45 23 01 EF CD AB 89 lwl $t1, 6($t0) # ulw $t1, 3($t0)lwr $t1, 3($t0) # $t1 = 0xABCDEF01

Page 19: Karakteristike RISC procesora

Unaligned Store Halfword: ush Rd, n(Rs) 3/3Niža polureč iz registra Rd se smešta na adresu n(Rs). Adresa ne mora biti poravnata.

sb Rd, n(Rs)srl $1, Rd, 8sb $1, (n+1)(Rs)

Primer:lui $t0, 0x1000 # $t0=0x10000000ori $t1, 0x1234 # $t1=0x00001234sb $t1, 3($t0) # ush $t1, 3($t0)srl $1, $t1, 8sb $1, 4($t0) # 0 1 2 3 4 5 6 # 00 00 00 34 12 00 00

Page 20: Karakteristike RISC procesora

Makro naredbe

Asemblerski jezik MIPS arhitekture pruža mogućnost korišćenja makro naredbi. Makro naredba predstavlja sekvencu regularnih instrukcija koja se definiše jedanput a može se koristiti više puta u toku izvornog programa. Svaka makro naredba sastoji se od 3 celine: - zaglavlje predstavlja zapravo ime makro naredbe sa zadatim formalnim parametrima (npr. addx2 ($rd, $rs, $rt) - telo čini sekvenca reglarnih instrukcija u koju asembler prevodi makro pri pozivu - direktiva koja se odnosi na kraj definicije Pri pozivu makroa zadaje se ime i aktuelni parametri.

Page 21: Karakteristike RISC procesora

Kod MIPS mikroprocesora makro naredbe imaju sledeću sintaksu: .macro ime naredbe ($parametri) sekvenca instrukcija koje čine makro .end_macro

Primer:definisanje makroa:.macro addx2 ($rd, $rs, $rt)

sll $1, $rs, 1addu $rd, $1, $rt.end_macro

poziv makroa: addx2 ($t2, $t1, $t0)

Slede primeri instrukcija koje bi se mogle definisati kao makro naredbe.

Page 22: Karakteristike RISC procesora

Add with Shift by 1 : addx2 Rd, Rs, Rt 2/2

Sadržaj registra Rs se množi sa 2, pa se sabira sa sadržajem registra Rt. Dobijeni rezultat se upisuje u registar Rd.

sll $1, Rs, 1addu Rd, $1, Rt

Primer:ori $t0, $0, 8 # $t0 = 8ori $t1, $0, 1 # $t1 = 1sll $1, $t0, 1 # addx2 $t2, $t1, $t0 addu $t2, $1, $t1 # $t2 = 17

Page 23: Karakteristike RISC procesora

Branch if All Bits Set: ball Rs, Rt, Label 3/3Ukoliko su postavljeni svi bitovi u registru Rs označeni maskom u registru Rt vrši se grananje na adresu Label.

nor $1, Rs, $0and $1, $1, Rtbeq $1, $0, Label

Primer:ori $t1, $0, 12 # $t1 = 1100ori $t0, $0, 11 # $t0 = 1011nor $1, $t1, $0 # ball $t1, $t0, laband $1, $1, $t0beq $1, $0, labsll $0, $0, 0ori $t2, $0, 1 # ako nije doslo do lab: # grananja $t2=1

Page 24: Karakteristike RISC procesora

Maximum Value: max Rd, Rs, Rt 4/4U registar Rd se upisuje veća od vrednosti u registrima Rs i Rt. Sadržaji registara Rs i Rt se porede kao označeni brojevi. slt $1, Rs, Rt

beq $1, $0, skipor Rd, Rs, $0or Rd, Rt, $0

skip:Primer:lui $1, 0xffffori $t0, $1, 0xfffb # t0 = -5ori $t1, $0, 7 # t1 = 7slt $1, $t1, $t0 # max $t2, $t1, $t0beq $1, $0, labelaor $t2, $t1, $0 # u slotu grananjaor $t2, $t0, $0labela:

Page 25: Karakteristike RISC procesora

Primer

Dat je niz a od 4 elementa tipa reč (32 bita). Generisati nizove b i c čiji su elementi tipa polureč (16 bitova) tako što se u niz b smešta niža, a u niz c viša polureč odgovarajućeg elementa niza a. Pretpostaviti da su nizovi a, b i c smešteni počev od adresa NizA, NizB i NizC, respektivno, pri čemu ove adrese ne moraju biti poravnate.

Page 26: Karakteristike RISC procesora

Prvo definišemo nizove:

.data

NizA: .word 0x11112222, 0x33334444, 0x55556666, 0x77778888NizB: .half 0, 0, 0, 0, 0NizC: .half 0, 0, 0, 0, 0

.text

Page 27: Karakteristike RISC procesora

Rešenje:la $t0, NizAaddi $t0, $t0, 16 # kraj niza ala $t1, NizBaddi $t1, $t1, 8 # kraj niza bla $t2, NizCaddi $t2, $t2, 8 # kraj niza cla $t7, NizA

petlja: addi $t0, $t0, -4 # pomeramo se zaaddi $t1, $t1, -2 # jedan element unazadaddi $t2, $t2, -2 # u svim nizovimaulw $t5, 0($t0) # ucitaj recush $t5, 0($t1) # sacuvaj nizu polurec u bsrl $t5, $t5, 16ush $t5, 0($t2) # sacuvaj visu polurec u cbne $t0, $t7, petlja # dok ne stignemo do # pocetka niza

Page 28: Karakteristike RISC procesora

korak 1: Pokrenuti MIPSter (Start→All Programs→MIPSter). Na označena mesta uneti rešenje primera koje je dato na predhodnom slajdu.

Sekcija za definisanje podataka

Sekcija za programsku sekvencu

Page 29: Karakteristike RISC procesora

korak 2: Selektovati file→save as iz padajućeg meny-ja i u dialog box-u koji se otvori upisati “primer.s” i kliknuti na taster save (ili pritisnuti taster enter).

Ovde upisati: primer.s

Page 30: Karakteristike RISC procesora

korak 3: Pokrenuti program PCSpim (Start→All Programs→PCSpim). Otvoriće se aplikaconi prozor koji je prikazan na slici.

register

Text segment

messages

data segment

Page 31: Karakteristike RISC procesora

Aplikacioni prozor sastoji se iz četiri dela: - sekcija na vrhu je meny-bar. Omogućava selekciju File operacije, postavljanje konfiguracije-opcijom Simulator, selekciju načina i vrste prikaza-opcijom Windows i dobijanje pomoćnih informacija-opcijom Help. - odmah ispod meny-bar-a je toolbar. Omogućava brzi bristup preko miša do svih alata koje koristi PCSpim. - najveća sekcija u sredini ekrana je sekcija prikaza koja ima četiri celine:Register (vrednosti svih registara CPU i MPU jedinica MIPS procesora), Text Segment (instrukcije iz korisničkog programa i sistemski kod), Data Segment (podaci koji se nalaze u memoriji i kojima korisnički program manipuliše) i Messages (ispisuju se pouke PCSpim-a). - na dnu velikog prozora nalazi se sekcija Status bar. Ova sekcija sadrži informacije o tekućim aktivnostima istatusu simulatora.

Page 32: Karakteristike RISC procesora

korak 4: Postaviti konfiguraciju simulatora selektovanjem Simulator→Settings iz menu bar-a tako da dialog box koji se otvori izgleda kao na slici

Page 33: Karakteristike RISC procesora

korak 5: Loadovati fajl primer.s selekcijom Open tastera iz toolbar-a (alternativno može se selektovati File→Open iz menu bar-a). Ukoliko program ne može da se loaduje PCSpim će pružiti mogućnost promene konfiguracje okoline i automatski će izvršiti reload fajla. Po učitavanju dialog box za otvaranje fajlova se zatvara i pojavljuje se glavni aplikacioni prozor sa prikazima instrukcija i podataka. Ako to nije slučaj treba promeniti izgled ekrana selekcijom Windows→Tile iz menu bar-a. Svaka instrukcija u tekstualnom segmentu prikazana je u liniji sličnoj sledećoj:

[0x0040000c] 0x00041080 sll $2, $4, 2 ; 143: sll $v0, $a0, 2

Prvi broj u liniji, smešten između uglastih zagrada je heksadecimalna memorijska adresa instrukcije. Drugi broj je heksadecimalni kod instrukcije. Iza tačke i zareza sledi linija iz fajla koja generiše instrukciju, a broj 143 je broj linije u fajlu. Ako iza tačke i zareza nema nikakve linije znači da je instrukciju generisao PCSpim u procesu prevođenja pseudonstrukcije ili makro naredbe.

Page 34: Karakteristike RISC procesora

korak 6: Pratiti izvršavanje programa uz pomoć tastera F10 ili selektovati Simulator→Single _Step iz menu bar-a (program se izvršava instrukcija po instrukcija). Izvršenje programa postiže se i pritiskom Go tastera iz toolbar-a (alternativno može se selektovati Simulator→Go iz menu bar-a).