Download presentation
Presentation is loading. Please wait.
1
Karakteristike RISC procesora
format instrukcije fiksna 32-bitna instrukcija taktna frekvenca do 1 GHz polje registara 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
2
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.
3
Pojednostavljena arhitektura MIPS procesora
4
Memorija Memorija je bajt adresabilna sa 32-bitnim adresama (od 0x 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.
5
Registri MIPS arhitektura definiše sledeće CPU registre:
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.
7
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
8
Načini adresiranja operanada
Procesor MIPSxx koristi sledeća četiri adresna načina rada: 1. registarsko adresiranje:operand je u registru 2. 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
9
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
10
Regularne instrukcije za manipulisanje integer vrednostima
12
Lista pseudo (makro) instrukcija
14
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 pseudoinstrukcija zamenjuje.
15
Absolute Value: abs Rd, Rs 3/3
U registar Rd smešta se apsolutna vrednost sadržaja registra Rs. addu Rd, $0, Rs bgez Rs, skip sub Rd, $0, Rs skip: Primer: lui $1, 0xffff or $t1, $1, # $t1 = -5 addu $t2, $0, $t1 # abs $t2, $t1 bgez $t1, skip sll $0, $0, 0 sub $t2, $0, $t1
16
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, target jr $t0 ... target:
17
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 vrednosti or $t1, $1, -354 ori $t2, # pozitivne vrednosti # do 16 bita ( ) lui $1, 0x # pozitivne vrednosti od or $t3, $1, 0x # 16 od 32 bita
18
Unaligned Load Word: ulw Rd, n(Rs) 2/2
Reč 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, 0x # $t0=0x lui $1, 0x0123 ori $1, 0x # $1= sw $1, 0($t0) lui $1, 0x89AB ori $1, 0xCDEF sw $1, 4($t0) # # EF CD AB 89 lwl $t1, 6($t0) # ulw $t1, 3($t0) lwr $t1, 3($t0) # $t1 = 0xABCDEF01
19
Unaligned Store Halfword: ush Rd, n(Rs) 3/3
Niža polureč iz registra Rd se smešta na adresu n(Rs). Adresa ne mora biti poravnata. sb Rd, n(Rs) srl $1, Rd, 8 sb $1, (n+1)(Rs) Primer: lui $t0, 0x # $t0=0x ori $t1, 0x # $t1=0x sb $t1, 3($t0) # ush $t1, 3($t0) srl $1, $t1, 8 sb $1, 4($t0) # #
20
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.
21
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, 1 addu $rd, $1, $rt poziv makroa: addx2 ($t2, $t1, $t0) Slede primeri instrukcija koje bi se mogle definisati kao makro naredbe.
22
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, 1 addu Rd, $1, Rt Primer: ori $t0, $0, 8 # $t0 = 8 ori $t1, $0, 1 # $t1 = 1 sll $1, $t0, # addx2 $t2, $t1, $t0 addu $t2, $1, $t # $t2 = 17
23
Branch if All Bits Set: ball Rs, Rt, Label 3/3
Ukoliko su postavljeni svi bitovi u registru Rs označeni maskom u registru Rt vrši se grananje na adresu Label. nor $1, Rs, $0 and $1, $1, Rt beq $1, $0, Label Primer: ori $t1, $0, 12 # $t1 = 1100 ori $t0, $0, 11 # $t0 = 1011 nor $1, $t1, $0 # ball $t1, $t0, lab and $1, $1, $t0 beq $1, $0, lab sll $0, $0, 0 ori $t2, $0, # ako nije doslo do lab: # grananja $t2=1
24
Maximum Value: max Rd, Rs, Rt 4/4
U 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, skip or Rd, Rs, $0 or Rd, Rt, $0 skip: Primer: lui $1, 0xffff ori $t0, $1, 0xfffb # t0 = -5 ori $t1, $0, 7 # t1 = 7 slt $1, $t1, $t0 # max $t2, $t1, $t0 beq $1, $0, labela or $t2, $t1, $0 # u slotu grananja or $t2, $t0, $0 labela:
25
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.
26
Prvo definišemo nizove:
.data NizA: .word 0x , 0x , 0x , 0x NizB: .half 0, 0, 0, 0, 0 NizC: .half 0, 0, 0, 0, 0 .text
27
Rešenje: la $t0, NizA addi $t0, $t0, # kraj niza a la $t1, NizB addi $t1, $t1, 8 # kraj niza b la $t2, NizC addi $t2, $t2, 8 # kraj niza c la $t7, NizA petlja: addi $t0, $t0, # pomeramo se za addi $t1, $t1, # jedan element unazad addi $t2, $t2, # u svim nizovima ulw $t5, 0($t0) # ucitaj rec ush $t5, 0($t1) # sacuvaj nizu polurec u b srl $t5, $t5, 16 ush $t5, 0($t2) # sacuvaj visu polurec u c bne $t0, $t7, petlja # dok ne stignemo do # pocetka niza
28
korak 1: Pokrenuti MIPSter (Start→All Programs→MIPSter)
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
29
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
30
korak 3: Pokrenuti program PCSpim (Start→All Programs→PCSpim)
korak 3: Pokrenuti program PCSpim (Start→All Programs→PCSpim). Otvoriće se aplikaconi prozor koji je prikazan na slici. register Text segment data segment messages
31
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.
32
korak 4: Postaviti konfiguraciju simulatora selektovanjem Simulator→Settings iz menu bar-a tako da dialog box koji se otvori izgleda kao na slici
33
korak 5: Loadovati fajl primer
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: [0x c] 0x sll $2, $4, ; 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.
34
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).
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.