of 24 /24
2 2. MicroBlaze procesor 2.1. Arhitektura MicroBlaze procesora MicroBlaze procesor je RISC procesor optimizovan za primenu na Xilinx FPGA čipovima[1]. Slika 1. Blok-dijagram MicroBlaze jezgra MicroBlaze procesor je izuzetno konfigurabilan, što omogućava korisniku da izabere željene karakteristike procesora potrebne za određenu namenu. Standardne karakteriskike procesora obuhvataju: Trideset dva 32-bitna registra opšte namene, 32-bitne instukcijske reči sa tri operanda i dva načina adresiranja, 32-bitnu adresnu magistralu, Jednostruki pipeline Pored ovih standardnih karakteristika, MicroBlaze procesoru se, pomoću određenih parametara, može selektivno dodati čitav niz dodatnih funkcija.

Bitno o Microblaze Procesoru

Embed Size (px)

DESCRIPTION

VHDL

Text of Bitno o Microblaze Procesoru

  • Ljubomir Papuga Diplomski rad

    2

    2. MicroBlaze procesor

    2.1. Arhitektura MicroBlaze procesora

    MicroBlaze procesor je RISC procesor optimizovan za primenu na Xilinx FPGA ipovima[1].

    Slika 1. Blok-dijagram MicroBlaze jezgra

    MicroBlaze procesor je izuzetno konfigurabilan, to omoguava korisniku da

    izabere eljene karakteristike procesora potrebne za odreenu namenu. Standardne karakteriskike procesora obuhvataju:

    Trideset dva 32-bitna registra opte namene, 32-bitne instukcijske rei sa tri operanda i dva naina adresiranja, 32-bitnu adresnu magistralu, Jednostruki pipeline

    Pored ovih standardnih karakteristika, MicroBlaze procesoru se, pomou

    odreenih parametara, moe selektivno dodati itav niz dodatnih funkcija.

  • Ljubomir Papuga Diplomski rad

    3

    2.1.1. Tipovi podataka

    MicroBlaze koristi Big-Endian nain prikazivanja podataka i podrava re, polu-re i bajt tipove podataka.

    2.1.2. Instrukcije

    Sve instrukcije su 32-bitne i definiu se kao tip A ili tip B. Tip A instrukcije imaju do dva izvorna operanda i jedan odredini operand. Tip B instrukcije imaju jedan izvorni registarski operand i 16-bitni trenutni operand, koji se moe proiriti na 32-bitni korienjem imm instrukcije pre instrukcije tipa B. Tip B instrukcije imaju jedan odredini registarski operand. Instrukcije se mogu podeliti u sledee funkcionalne kategorije:

    aritmetike, logike, instrukcije grananja, uitaj / upii instrukcije, specijalne, itd.

    2.1.3. Registri

    MicroBlaze procesor sadri trideset dva 32-bitna registra opte namene i do osamnaest 32-bitnih registara posebne namene, u zavisnosti od podeenih opcija. Registri opte namene (R0 R31)

    R0 : ima uvek vrednost 0, sve to se upisuje u R0 se odbacuje R1-R13 : 32-bitni registi opte namene R14 : 32-bitni registar namenjen za upisivanje povratne adrese interrupt

    prekida R15 : 32-bitni registar opte namene. Preporuka je da se koristi za upisivanje

    povratne adrese korisnikog vektora R16 : 32-bitni registar namenjen za uvanje povratne adrese break prekida R17 : ako je procesor konfigurisan da podrava hardverske izuzetke, u njega

    se upisuje adresa instrukcije koja sledi nakon instrukcije koja uzrokuje hardverski izuzetak

    R18-R31 : 32-bitni registri opte namene Registri posebne namene

    Programski broja (PC Program Counter) predstavlja 32-bitnu adresu izvrne instrukcije.

  • Ljubomir Papuga Diplomski rad

    4

    Mainski statusni registar (MSR Machine Status Register) sadri statusne i kontrolne bite za procesor

    bit0 (CC Arithmetic Carry Copy) - kopija bita prenosa (bita 29) bit1-bit16 rezervisani biti bit17 (VMS Virtual Protected Mode Save) dostupan samo kada je

    konfigurisan sa MMU bit18 (VM Virtual Protected Mode) kontrola dozvole prevoenja i pristupa

    MMU adresi bit19 (UMS User Mode Save) dostupan samo kada je konfigurisan sa

    MMU bit20 (UM User Mode) kontrola korisnikog moda bit21 (PVR Processor Version Register exists) oznaava da li postoji

    registar verzije procesora bit22 (EIP Exception In Progress) oznaava da li je u toku hardverski

    izuzetak bit23 (EE Exception Enable) kontrola dozvole hardverskih izuzetaka bit24 (DCE Data Cache Enable) kontrola dozvole korienja ke

    memorije podataka bit25 (DZ Division by Zero) oznaava da li se dogodilo deljenje s nulom bit26 (ICE Instruction Cache Enable) kontrola dozvole korienja ke

    memorije instrukcija bit27 (FSL FSL Error) oznaava da li je bilo FSL greke i dostupan je

    samo kada se koristi FSL link bit28 (BIP Break In Progress) oznaava da li je break prekid u toku bit29 (C - Carry) bit prenosa bit30 (IE Interrupt Enable) kontrola dozvole interrupt prekida bit31 (BE Buslock Enable) kontrola dozvole zatvaranja magistrale

    Registar adrese izuzetaka (EAR Exception Address Register) uva punu

    adresu koja je uzrokovala izuzetak.

    Statusni registar izuzetaka (ESR Exception Status Register) sadri statusne bite za procesor, koji su vezani za izuzetke.

    bit0-bit18 rezervisani biti bit19 (DS Delay Slot Exception) oznaava da li je izuzetak uzrokovan

    instrukcijom vremenskog kanjenja bit20-bit26 (ESS Exception Specific Status) sadri statusne podatke vezane

    za specifine tipove izuzetaka bit27-bit31 (EC Exception Cause) sadri podatke vezane za uzrok

    izuzetka.

    Registar ciljne adrese grananja (BTR Branch Target Register) postoji samo ako je MicroBlaze procesor konfigurisan da podrava izuzetke. Ako je izuzetak uzrokovan instrukcijom u vremenskom kanjenju, upravlja izuzetkom treba da vrati izvravanje na adresu iz ovog registra umesto na povratnu adresu izuzetka koja je upisana u registar opte namene R17.

  • Ljubomir Papuga Diplomski rad

    5

    Floating Point statusni registar (FSR Floating Point Status Register) sadri statusne bite za Floating Point jedinicu.

    bit0-bit26 rezervisani biti, bit27 (IO Invalid Operation) nevaea operacija, bit28 (DZ Divide-by-Zero) deljenje nulom, bit29 (OF - Overflow) prekoraenje, bit30 (UF - Underflow) potkoraenje, bit31 (DO Denormalized Operand error) greka usled denormalizovanog

    operanda.

    Registar podataka izuzetaka (EDR Exception Data Register) uva podatke sa FSL linka koji je prouzrokovao FSL izuzetak.

    Identifikator Procesa (PID Process Identifier Register) koristi se da jedinstveno identifikuje softverski proces prilikom prevoenja MMU adrese.

    Registar zatienih zona (ZPR Zone Protection Register) koristi se da zaobie MMU memorijsku zatitu definisanu u TLB unosima. Primena registarskih bita zavisi od broja navedenih zatienih memorijskih zona.

    TLBLO i TLBHI (Translation Look-Aside Buffer Low i High) registri slue za pristup MMU UTLB (Unified Translation Look-Aside Buffer) unosima za prevoenje adresa, dok TLBX (Translation Look-Aside Buffer Index) registar slui kao indeks za UTLB prilikom pristupa TLBLO i TLBHI registrima. TLBSX (Translation Look-Aside Buffer Search Index) registar slui za pronalaenje virtuelnog broja stranice u UTLB.

    Registar verzije procesora (PVR Processor Version Register) kontrolisan je pomou C_PVR opcije za konfigurisanje na MicroBlaze procesorima. U zavisnosti od konfiguracije mogu se koristiti jedan, dva ili svih dvanaest PVR registara, ili pak nijedan od njih.

    2.1.4. Pipeline arhitektura

    Izvravanje instrukcija u MicroBlaze procesoru je u obliku pipeline-a. Za veinu instrukcija svaka faza izvravanja traje jedan mainski ciklus. Broj ciklusa potreban za izvravanje odreene instrukcije je jednak broju faza unutar pipeline strukture, a u svakom mainskom ciklusu se izvrava jedna instrukcija. Za izvravanje pojedinih instrukcija potrebno je vie mainskih ciklusa , to se postie zadravanjem pipeline-a.

    Pri izvravanju iz sporijih memorija, prikupljanje instrukcija moe da potraje vie mainskih ciklusa, to utie na efikasnost pipeline-a. U MicroBlaze arhitekturi je primenjen bafer za preuzimanje instrukcija koji smanjuje uticaj kanjenja usled ovih vieciklinih instrukcija. Dok se pipeline zadrava zbog viecuiklusnih instrukcija u fazi izvravanja, ovaj bafer nastavlja da preuzima sekvencijalne instrukcije. Kada pipeline nastavi normalno izvravanje, u fazi preuzimanja uzimaju se instrukcije direktno iz bafera bez ekanja na pristup memoriji instrukcija.

  • Ljubomir Papuga Diplomski rad

    6

    Trofazni pipeline

    Kada je dozvoljena optimizacija prostora, pipeline je podeljen u tri faze: preuzimanje (Fetch), dekodiranje (Decode) i izvravanje (Execute).

    Slika 2. Izvravanje instrukcija u trofaznom pipeline-u

    Petofazni pipeline

    Kada optimizacija prostora nije dozvoljena, pipeline je podeljen u pet faza: preuzimanje (IF), dekodiranje (OF), izvravanje (EX), pristup memoriji (MEM) i upisivanje (WB).

    Slika 3. Izvravanje instrukcija u petofaznom pipeline-u

    2.1.5. Grananje

    Uobiajeno je da se instrukcije u fazama preuzimanja i dekodiranja (kao i bafera za preuzimanje instrukcija) odbacuju kada se izvrava odreena grana. Tada se faza preuzimanja u pipeline-u popunjava novom instrukcijom iz izraunate adrese grananja. Grana u MicroBlaze-u se izvrava u tri mainska ciklusa, od ega su dva potrebna za popunjavanje pipeline-a. Da bi se smanjilo kanjenje, MicroBlaze podrava grane sa delay slot-ovima.

    Pri izvravanju grane sa delay slot-om odbacuje se samo feza prihvatanja u pipeline-u, dok se dozvoljava instrukciji u fazi dekodiranja da bude izvrena. Ova tehnika smanjuje kanjenje na jedan mainski ciklus.

  • Ljubomir Papuga Diplomski rad

    7

    2.1.6. Arhitektura memorije

    U MicroBlaze-u se primenjuje Harvard memorijska arhitektura; instrukcijama i podacima se pristupa u odvojenim adresnim prostorima. Svaki adresni prostor ima 32-bitni opseg (npr. obhvata do 4Gb adresnog prostora za instrukcije i podatke respektivno). Opsezi memorije instrukcija i podataka se mogu preklapati mapiranjem obe vrste memorija na istu fiziku memoriju, to je korisno kod debagovanja.

    Pristup podacima mora biti poravnat (pristup podacima tipa re mora biti u granicama rei itd.), osim ako procesor nije konfigurisan da radi sa neporavnatim izuzecima.

    MicroBlaze procesor ima do tri interfejsa za pristup memoriji:

    Lokalna memorijska magistrala (LMB - Local Memory Bus) Procesorska lokalna magistrala (PLB - Processor Local Bus) ili Periferna

    magistrala na ipu (OPB - On-Chip Peripheral Bus) Xilinx Cache Link (XCL) LMB memorijski prostor se ne sme preklapati sa PLB, OPB ili XCL prostorima.

    MicroBlaze ima kanjenje od jednog mainskog ciklusa prilikom pristupa

    lokalnoj memoriji (LMB) i itanja iz kea, osim kada je dozvoljena optimizacija kada pristup memoriji i itanje kea unose kanjenje od dva mainska ciklusa. Upisivanje podataka u ke obino unosi kanjenje od dva mainska ciklusa.

    MicroBlaze instrukcijski i ke podataka moe biti konfigurisan da koristi ke linije od 4 ili 8 rei. Kada se koristi dua ke linija vie bajtova se stavlja u prihvatni bafer, to poboljava preformanse za kod sa sekvencijalnim oblikom pristupa. Za kod sa dominantno sluajnim oblikom pristupa, performanse se smanjuju sa veliinom linije, to je uzrokovano smanjenom brzinom pristupa keu usled manje slobodnih ke linija.

    2.1.8. Privilegovane instrukcije

    U MicroBlaze-u su privilegovane sledee instrukcije:

    GET, PUT, NGET, NPUT, CGET, CPUT, NCGET, NCPUT WIC, WDC MTS MSRCLR, MSRSET (osim kada se utie na C bit) BRK RTID, RTBD, RTED BRKI (osim prilikom skoka na fiziku adresu 0x8 ili 0x18)

    Pokuaj korienja ovih instrukcija u korisnikom modu dovodi do izuzetaka.

  • Ljubomir Papuga Diplomski rad

    8

    Postoji est naina izlaza iz korisnikog i virtuelnog moda:

    Hardverski generisani reset Hardverski izuzetak Nemaskirani break prekid ili hardverski break prekid Interrupt prekid Izvravanjem instrukcije BRALID Re, 0x8 izazivajui korisniki vektorski

    izuzetak Izvravanjem instrukcije softverskog prekida BRKI izazivajui skok na

    fiziku adresu 0x8 ili 0x18

    U svim ovim sluajevima, osim u sluaju hardverski generisanog reseta, status korisnikog i virtuelnog moda se uvaju u MSR, UMS i VMS bitima.

    Aplikacija (korisniki mod) prebacuje kontrolu sistemskim servisnim rutinama (privilegovani mod) korienjem BRALID ili BRKI instrukcija, skaui na fiziku adresu 0x8 ili 0x18. Izvravanje ovih instrukcija uzrokuje pojavu izuzetka sistemskog poziva. Upravlja izuzecima odreuje koja se sistemska servisna rutina poziva i da li aplikacija ima dozvolu za poziv date rutine. Ukoliko je dozvola odobrena, upravlja izuzecima upuuje poziv sistemske servisne rutine.

    Izvrno okruenje oekivano od strane sistemske servisne rutine zahteva izvravanje uvodnih instrukcija za podeavanje tog okruenja. Te instrukcije obino stvaraju skladine blokove koji sadre proceduralne informacije, pokazivae inicijalizacije i auriranja i registre koje koristi sistemska servisna rutina. Uvodni kod se moe ubaciti od strane linkera pri stvaranju izvrnog modula ili moe biti uvren kao ostatak koda u upravljau interapta sistemskog poziva ili u rutinama sistemskih biblioteka.

    Postupci povratka iz sistemski servisnih rutina su obratni gore opisanom procesu. Izvrava se zakljuni kod kako bi se preuredili i dealocirali aktivacioni podaci, povratili pokazivai i registri korieni u sistemskoj servisnoj rutini. Upravlja interrupt prekida izvrava instrukciju povratka iz izuzetka (RTED) za povratak na izvravanje aplikacije.

    2.1.9. Upravljanje virtuelnom memorijom

    Programi izvravani na MicroBlaze-u koriste efektivnu adresu da pristupe ravnom adresnom prostoru od 4Gb. Procesor moe da tumai taj adresni prostor na dva naina, zavisno od naina prevoenja:

    U realnom modu, efektivna adresa se koristi za direktan pristup fizikoj memoriji.

    U virtuelnom modu, efektivna adresa se prevodi u fiziku adresu pomou harvera za upravljanje virtuelnom memorijom unutar procesora.

    Virtuelni mod obezbeuje sistemskom softveru mogunost premetanja

    programa i podataka bilo gde unutar fizikog adresnog prostora. Sistemski sofver moe da izbaci neaktivne programe i podatke iz fizike memorije ukoliko aktivni programi i podaci zahtevaju vei memorijski prostor. Ovo premetanje utie na to da program vidi memorijski prostor veim nego to on to zapravo jeste, to oslobaa programera rada unutar granica nametnutih veliinom fizike memorije unutar

  • Ljubomir Papuga Diplomski rad

    9

    sistema. Programer ne mora da zna koje su fizike adrese dodeljene drugim softverskim procesima i ureajima, ve sam procesor prevodi adrese koje vidi program u fizike adrese..

    Virtuelni mod omoguava veu kontrolu nad zatitom memorije. Memorijski blokovi veliine i do 1 KB se mogu posebno zatititi od nedozvoljenog pristupa. Zatita memorije i sposobnost premetanja podataka unutar nje omoguava sistemskom softveru da podrava multitasking, tj. istovremeno ili skoro istovremeno izvravanje vie programa.

    U MicroBlaze-u se virtuelni mod izvrava pomou jedinice za upravljanje memorijom (MMU Memory Management Unit) i dostupan je kada je C_USE_MMU podeen na vrednost 3. MMU kontrolie mapiranje efektivnih u fizike adrese i podrava zatitu memorije.

    Implementacija MMU u MicroBlaze-u je bazirana na PowerPC 405 procesoru. Karakteristike MMU ukratko obuhvataju:

    prevoenje efektivne adrese u fiziku adresu kontrola pristupa prilikom prevoenja adresa dodatna kontrola zatite korienjem zona nezavisna kontrola nad prevoenjem adresa instrukcija i adresa podataka i

    zatite podrava osam veliina stranica: 1kB, 4kB, 16kB, 64kB, 256kB, 1MB, 4MB i

    16MB. Sistemski softver moe koristiti bilo koju kombinaciju ovih veliina stranica.

    sofverska kontrola strategije zamene stranica Realni mod

    Procesor se obraa memoriji prilikom prihvatanja instrukcija i pri pristupanju podacima prilikom instrukcija uitavanja ili skladitenja. Obraanje memorijskim lokacijama se vri pomou 32-bitne efektivne adrese koju izraunava procesor. U realnom modu fizika adresa je identina efektivnoj adresi i nju koristi procesor za pristup fizikoj memoriji. Nakon reseta procesora, on radi u realnom modu. Takoe, realni mod se omoguava postavljanjem VM bita na 0 u mainskom statusnom registru (MSR).

    U realnom modu nema prevoenja virtuelne adrese, ali postoji potpuna zatita pristupa memoriji, kada je C_USE_MMU>1. Realizacija upravljanja memorijom u realnom modu je jednostavnija nego u virtuelnom modu. Realan mod je esto dobro reenje za upravljanje memorijom u jednostavnom okruenju, kada je neophodna zatita pristupu memoriji, ali nema potrebe za prevoenjem virtualne adrese. Virtuelni mod

    U virtuelnom modu, procesor prevodi efektivnu adresu u fiziku korienjem procesa prikazanog na slici 4.

  • Ljubomir Papuga Diplomski rad

    10

    Slika 4. Postupak prevoenja efektivne adrese

    U virtuelni mod se prelazi postavljanjem VM bita na 1 u mainskom statusnom registru (MSR).

    Svaka adresa sadri polje broja stranice i ofset polje. Broj stranice predstavlja deo adrese koji prevodi MMU, dok ofset predstavlja ofest bajta u stranici i njega MMU ne prevodi. Virtuelna adresa sadri dodatno polje, koje se naziva PID (identifikator procesa) i koje se preuzima iz PID registra. Kombinacija PID-a i efektivnog broja stranice (EPN) upuuje na virtuelni broj stranice (VPN). Vrednost broja n se utvruje na osnovu veliine stranice.

    Sistemski softver vodi tabelu prevoenja stranica koja sadri unose potrebne za prevoenje svake virtuelne stranice u fiziku stranicu.Veliina stranice definisana ovim unosima odreuje veliinu broja stranice i ofset polja.

    Najee korieni prevodi stranica se smetaju u specijalno namenjen bafer (TLB). Pri prevoenju virtuelne adrese MMU pregleda unose za podudaranje VPN-a (PID i EPN). Samo unosi koji postoje u TLB registru procesora se pregledaju, umesto pregledanja celokupne tabele. Kada se pronae unos sa istim VPN, ita se odgovarajua fizika adresa i zajedno sa ofsetom formira se 32-bitna fizika adresa, pomou koje procesor pristupa memoriji.

    Sistemski softver koristi PID da jednoznano prepozna softverske procese koje procesor izvrava. Nezavisno kompajlirani procesi mogu da rade nad regionima efektivnih adresa koji se meusobno preklapaju. Sistemski softver mora da razrei ovo preklapanje ukoliko je podran multitasking. To se postie dodelom PID-a svakom procesu ime se oni premetaju u jedinstvene regione unutar virtuelnog adresnog prostora. Mapiranje virtuelnog adresnog prostora omoguava nezavisno prevoenje svakog procesa u fiziki adresni prostor.

  • Ljubomir Papuga Diplomski rad

    11

    Tabela prevoenja stranica

    Tabela prevoenja stranica je softverski definisana i softverski upravljana struktura podataka koja sadri prevode stranica. Zahtevi za softverski upravljanim prevodom stranica predstavljaju kompromis u arhitekturi Embedded sistema, koji su skloni strogo kontrolisanom radnom okruenju i dobro definisanom skupu aplikacija. Takvo okruenje omoguava optimizaciju upravljanja virtuelnom memorijom za svaki sistem, i to na sledee naine:

    Tabela prevoenja stranica se moe organizovati tako da maksimizuje performanse pretrage tabele stranica (Table Walking), tako da se dati unos brzo pronae. Veina procesora opte namene poseduju ili indeksiranu tabelu stranica (jednostavan nain pretrage, velika tabela stranica) ili meovitu tabelu stranica (komplikovan nain pretrage, mala tabela stranica). Pomou softverskog Table Walking-a svako hibridno ureenje moe se koristiti tako da odgovara odreenom sistemu na takav nain da se optimizuju i veliina tabele i brzina pristupa.

    Mogu se koristiti nezavisne veliine stranica za module aplikacije, drajvere ureaja, sistemske servisne rutine i podatke. Nezavisne veliine stranica omoguavaju sistemskom softveru efikasnije korienje memorije smanjenjem fragmentacije (neiskoriene memorije).

    Postupak zamene stranica se moe podesiti tako da minimizira pojavu nedostatka prevoda stranica. Najee korieni prevodi se smetaju u TLB bafer, pri emu je na softveru da odlui koji prevodi se stavljaju u TLB i koji se izbacuju kada je potreban novi prevod. Strategija zamene prevoda se moe podesiti tako da se izbegnu stalna ubacivanja i izbacivanja prevoda stranica u i iz TLB-a, a takoe se moe spreiti izbacivanje kritinih prevoda stranica (Page Locking).

    Translation Look-Aside Buffer (TLB)

    MicroBlaze MMU koristi TLB za prevoenje stranica kada procesor radi u virtuelnom modu sa zatitom memorije i kontrolonm skladitenja podataka. Svaki unos unutar TLB sadri informaciju potrebnu da se odredi virtuelna stranica (PID i efektivni broj stranice), specifikuje njeno prevoenje u fiziku stranicu, odreuje zatitne karakteristike stranice i navodi skladine atribute stranice.

    MicroBlaze TLB je fiziki realizovan kao tri odvojena TLB-a:

    Jedinstveni TLB (UTLB) sadri 64 unosa i pseudo-asocijativan je. Prevodi stranica instrukcija i stranica podataka se mogu smestiti u bilo koji unos unutar UTLB. UTLB se inicijalizuje i upravlja u potpunosti softverski.

    Instrukcijski TLB (ITLB) sadri prevode stranica i u potpunosti je asocijativan. Unosi unutar ITLB predstavljaju najskorije pristupane prevode stranica instrukcija iz UTLB. ITLB se koristi da bi se minimizovala preklapanja izmeu prevoda instrukcija i operacija auriranja UTLB-a. ITLB se inicijalizuje i upravlja u potpunosti hardverski i transparentan je u odnosu na softver.

    TLB podataka (DTLB) sadri prevode stranica podataka i potpuno je asocijativan. Unosi unutar DTLB predstavljaju najskorije pristupane prevode

  • Ljubomir Papuga Diplomski rad

    12

    stranica podataka iz UTLB. DTLB se koristi da bi se minimizovala preklapanja izmeu prevoda podataka i operacija auriranja UTLB-a. DTLB se inicijalizuje i upravlja u potpunosti hardverski i transparentan je u odnosu na softver.

    TLB pristupi

    Kada MMU prevodi virtuelnu adresu u fiziku, najpre pregleda odgovarajui TLB (ITLB ili DTLB) traei unos prevoda stranice. Ukoliko se pronae unos, on se koristi za pristup fizikoj memoriji, a ako se ne pronae MMU trai unos unutar UTLB-a. Svaki put kada je potrebno pristupiti UTLB-u nastaje kanjenje usled nedostatka unosa unutar specijalizovanih TLB-a i ovo kanjenje iznosi izmeu 2 i 32 ciklusa. DTLB ima prioritet u odnosu na ITLB ukoliko oba istovremeno pristupaju UTLB-u. Zatita pristupa

    Sistemski softver koristi zatitu pristupa kako bi zatitio osetljive memorijske lokacije od nepropisnog pristupa. Sistemski sofver je u mogunosti da ogranii pristup memoriji i za softver u korisnikom modu i za softver u privilegovanom modu. Ogranienja se mogu postaviti na pozive itanja, pisanja i pozive intsrukcija. Zatita pristupa je dostupna kada je dozvoljen rad u virtuelnom modu.

    Kontrola pristupa se odnosi na instrukcijske pozive kao i uitavanje i upisivanje podataka. TLB unos za virtuelnu stranicu odreuje tip pristupa koji je dozvoljen za datu stranicu. TLB unos takoe odreuje i polje zatienih zona u registru zatienih zona koji se koristi da zaobie kontrole pristupa odreene TLB unosom. Svaki TLB unos kontrolie tri vrste pristupa:

    Proces procesi su zatieni od nedozvoljenog pristupa dodelom jedinstvenog

    identifikatora svakom procesu (PID). Prilikom izvravanja aplikacije prevode se samo one adrese ije se TID polje unutar bafera za prevoenje poklapa sa identifikatorom procesa (PID).

    Izvrenje procesor izvrava instrukcije samo ako se one pozivaju sa virtuelne stranice koja je oznaena kao izvrna.

    itaj / pii podaci se upisuju samo na one virtuelne stranice koje su oznaene kao upisujue.

    TLB unosi se ne mogu koristiti za spreavanje itanja stranica od strane

    programa. U virtuelnom modu se koristi zatita zona za zatitu itanja stranica. Samo programima koji se izvravaju u korisnikom modu se moe zabraniti itanje stranica. Privilegovani programi uvek imaju pravo pristupa itanju stranica. Zatita zona

    Zatita zona se koristi kako bi se zaobila zatita pristupa navedena unutar TLB unosa. Zone predstavljaju proizvoljne grupacije virtuelnih stranica sa zajednikom zatitom pristupa. Zone mogu sadrati bilo koji broj stranica u bilo kojoj kombinaciji njihove veliine. Ne postoji zahtev za zone da moraju da sadre susedne

  • Ljubomir Papuga Diplomski rad

    13

    stranice. Registar zatite zona (ZPR) je 32-bitni registar koji opisuje nain obilaenja zatite koji je primenjen na svaku od 16 moguih zona. Upravljanje UTLB-a

    UTLB slui kao interfejs izmeu MMU unutar procesora i softvera za upravljanje memorijom. Sistemski softver rukovodi UTLB-om opisujui MMU-u na koji nain da prevodi virtuelne adrese u fizike. Kada se dogodi problem usled nedostatka prevoda ili prekraja pristupa MMU o tome obavetava sistemski softver pomou mehanizma izuzetaka. Sistemski softver je odgovoran da obezbedi sistem prekida da bi se prevazili ovi problemi kako bi MMU mogao da nastavi sa prevoenjem adresa. Snimanje pristupa stranicama i izmena stranica

    Softversko upravljanje virtuelnom memorijom postavlja nekoliko izazova:

    U okruenju sa virtuelnom memorijom, sofver i podaci esto troe vie momorijskih resursa no to je fiziki na raspolaganju. Neke izvrne stranice i stranice podataka moraju se smestiti izvan fizike memorije kada nisu u upotrebi. Idealno, najee koriene stranice ostaju unutar fizike memorije a one koje to nisu se smetaju na drugo mesto.

    Kada se stranice iz fizike memorije izmetaju kako bi napravile mesto za nove stranice, potrebno je znati da li su zamenjene (stare) stranice bile izmenjene. Ako jesu, moraju se sauvati pre uitavanja novih stranica. Ukoliko nisu bile menjane, nove stranice se mogu uitati bez prethodnog uvanja starih.

    Unutar UTLB se uva ogranicen broj prevoda stranica. Preostali prevodi se moraju uvati unutar tabele prevoda stranica. Kada se prevod ne nalazi unutar UTLB, sistemski softver mora da odlui koji e UTLB unos da izbaci kako bi nedostajui unos mogao da se uita. Poeljno je da sistemski softver izbacuje najmanje koriene prevode, a da zadrava one koji se koriste najee.

    Reavanje ovih problema na efikasan nain zahteva voenje evidencije o

    pristupu stranicama i njihovim izmenama. MicroBlaze ne vodi ovakvu evidenciju unutar hartdvera, ve sistemski softver korienjem mehanizama izuzetaka sakuplja ove informacije. Prikupljanjem informacija one se mogu organizovati u strukturu podataka koja se povezuje sa tabelom prevoda stranica.

  • Ljubomir Papuga Diplomski rad

    14

    2.1.9. Reset, interrupt i break prekidi i izuzeci

    MicroBlaze podrava reset, interrupt prekide, korisnike izuzetke, break prekide i hardverske izuzetke. Relativni prioritet poev od najvieg je:

    1. Reset 2. Hardverski izuzetak 3. Nemaskirani break prekid 4. Break prekid 5. Interrupt prekid 6. Korisniki vektor (izuzetak)

    Reset

    Kada se dogodi reset, MicroBlaze odbacuje pipeline i poinje prihvatanje instrukcija od reset vektora (adresa 0x0). Oba eksterna reset signala su aktivna na visok nivo i trebalo bi da su aktivna minimum 16 ciklusa. Hardverski izuzeci

    MicroBlaze se moe konfigurisati tako da zaustavi sledee unutranje greke: nedozvoljene instrukcije, greke magistrale instrukcija i podataka i neporavnati pristup. Izuzeci deljenja nulom se mogu omoguiti samo ukoliko je procesor konfigurisan sa hardverskim deliteljem. Kada je procesor konfigurisan sa hardverskom floating point jedinicom moe zaustaviti i sledee specifine izuzetke: podkoraenje, prekoraenje, deljenje nulom, nedozvoljene operacije i greke denormalizovanih operanda. Kada je konfigurisan sa hardverskom jedinicom za upravljanje memorijom MicroBlaze moe da zaustavi i izuzetke specifine za upravljanje memorijom, kao to su: izuzeci nedozvoljenih instrukcija, izuzeci skladitenja podataka, izuzeci skladitenja instrukcija, kao i izuzeci vezani za greke instrukcijskog TLB i TLB podataka.

    Hardverski izuzetak uzrokuje odbacivanje pipeline-a i grananje na vektor hardverskog izuzetka (adresa 0x20). Pri tome se izvrna faza instrukcije u ciklusu izuzetka ne izvrava. Izuzetak takoe aurira registr opte namene R17 na sledei nain:

    Za MMU izuzetak u registar R17 se uitava odgovarajua vrednost

    programskog brojaa kako bi se ponovno izvrila instrukcija koja je uzrokovala izuzetak nakon povratka.

    Za sve ostale izuzetke u registar R17 se uitava vrednost programskog brojaa naredne instrukcije, osim ako je izuzetak uzrokovan instrukcijom u grani sa delay slot-om.

  • Ljubomir Papuga Diplomski rad

    15

    Break prekidi

    Postoje dve vrste break prekida: hardverski (spoljanji) i softverski (unutranji).

    Hardverski break prekidi

    Hardverski break prekidi se izvravaju pojavom spoljanjeg signala prekida. Prilikom prekida izvrava se instrukcija u izvrnoj fazi dok se instrukcija u fazi dekodovanja zamenjuje granom ka vektoru prekida (adresa 0x18). Adresa povratka iz prekida se automatski uitava u registar opte namene R16 i setuje se bit Break In Progress (BIP) unutar mainskog statusnog registra (MSR). Normalni hardverski break prekid se obrauje ukoliko nema drugog prekida u toku, dok se nemaskirani break prekid uvek obrauje momentalno. Softverski prekidi

    Da bi se izvrio softverski prekid, koriste se BRK i BRKI instrukcije. Vreme potrebno da MicroBlaze ue u prekidnu servisnu rutinu od pojave prekida zavisi od instrukcije koja je trenutno u fazi izvravanja i vremena pristupa memoriji koja uva vektor prekida. Interrupt prekidi

    MicroBlaze podrava jedan spoljni izvor interrupt prekida. Procesor reaguje na interrupt prekid samo ako je Interrupt Enable (IE) bit unutar mainskog statusnog registra (MSR) setovan na 1. Prilikom interrupt prekida izvrava se instrukcija u izvrnoj fazi dok se instrukcija u fazi dekodovanja zamenjuje granom ka vektoru prekida (adresa 0x10). Adresa povratka iz prekida se automatski uitava u registar opte namene R14. Dodatno, procesor automatski zabranjuje dalje interrupt prekide postavljanjem IE bita na 0. IE bit se automatski setuje na 1 prilikom izvravanja instrukcije povratka iz prekida.

    Vreme potrebno da MicroBlaze ue u servisnu rutinu prekida od pojave interrupt prekida zavisi od konfiguracije procesora i vremena kanjenja memorijskog kontrolera koji uva vektor prekida. Ukoliko je MicroBlaze konfigurisan da poseduje hardverski delitelj, najvee kanjenje nastupa kada se interrupt prekid dogodi prilikom izvravanja instrukcije deljenja. Korisniki vektor (izuzetak)

    Vektor korisnikog izuzetka se nalazi na adresi 0x8. Korisniki izuzetak je prouzrokovan ubacivanjem instrukcije BRALID Rx, 0x8 u kod aplikacije. Iako Rx moe biti bilo koji registar opte namene, Xilinx preporuuje korienje R15 za uvanje povratne adrese korisnikog izuzetka i korienje instrukcije RTSD pri povratku iz rutine korisnikog izuzetka.

  • Ljubomir Papuga Diplomski rad

    16

    2.1.10. Instrukcijski ke

    MicroBlaze se moe koristiti sa opcionim instrukcijskim keom za unapreenje performansi kada se izvrava kod koji se nalazi izvan LMB adresnog prostora. Funkcionalnost instrukcijskog kea

    Kada se koristi instrukcijski ke, memorijski adresni prostor se deli na dva segmenta, keirani i nekeirani. Keiran segment je odreen sa dva parametra: C_ICACHE_BASEADDR i C_ICACHE_HIGHADDR. Sve adrese u ovom opsegu odgovaraju keiranom adresnom prostoru.

    Adresa ke instrukcije sadri dva dela: ke adresu i adresu oznake. Instrukcijski ke moe se konfigurisati od 64 bajta do 64 kB, to odgovara ke adresi izmeu 6 i 16 bita. Adresa oznake zajedno sa ke adresom treba da odgovara punoj adresi ke memorije.

    Slika 5. Organizacija instrukcijskog kea

    Nain rada instrukcijskog kea

    Za svaku instrukciju koja se prihvata, instrukcijski ke ustanovljava da li adresa instrukcije pripada keiranom segmentu. Ako to nije sluaj, ke kontroler zanemaruje instrukciju i obradu zahteva preputa PLB-u, OPB-u ili LMB-u. Ukoliko instrukcija pripada keiranom segmentu, vri se pregled oznaka u memoriji kako bi se utvrdilo da li je zatraena adresa trenutno keirana. Ukoliko nije, ke kontroler zahteva novu instrukciju preko instrukcijskog CacheLink (IXCL) interfejsa.

    2.1.11. Ke podataka

    MicroBlaze se moe koristiti sa opcionim keom podataka radi postizanja boljih performansi. Opseg ke memorije ne sme da ukljuuje adrese iz LMB adresnog prostora.

  • Ljubomir Papuga Diplomski rad

    17

    Funkcionalnost kea podataka

    Pri korienju kea podataka, meorijski adresni prostor se deli na dva segmenta, keirani i nekeirani. Keirani prostor je odreen sa dva parametra: C_DCACHE_BASEADDR i C_DCACHE_HIGHADDR. Sve adrese u ovom opsegu adresa pripadaju keiranom adresnom prostoru.

    Adresa ke podatka sadri dva dela: ke adresu i adresu oznake. Ke podataka moe se konfigurisati od 64 B do 64 kB, to odgovara ke adresi izmeu 6 i 16 bita. Adresa oznake zajedno sa ke adresom treba da odgovara punoj adresi ke memorije.

    Slika 6. Organizacija kea podataka

    Nain rada kea podataka

    MicroBlaze ke podataka primenjuje Write-through protokol. Ukoliko je ke omoguen, memorisanje na adresi unutar keiranog adresnog prostora proizvodi upis odgovarajueg bajta, polurei ili rei preko CacheLink-a (DXCL) podataka do spoljne memorije. Upis takoe aurira keirani podatak ukoliko je re sa ciljne adrese unutar kea.

    Ukoliko je ke omoguen, uitavanje sa adrese unutar kea pokree proveru radi utvrivanja da li je zahtevani podatak unutar kea. Ukoliko jeste, on se preuzima iz kea, a ako nije zahteva se adresa preko CacheLink-a podataka (DXCL) i zaustavlja se pipeline procesora sve dok se ke linija koja odgovara zahtevanoj adresi ne vrati iz kontrolera spoljne memorije.

    2.1.12. Floating-point jedinica (FPU)

    MicroBlaze floating-point jedinica se zasniva na IEEE 754 standardu:

    Koristi IEEE 754 floating-point jedinicu jednostruke tanosti, ukljuujui definicije za beskonanost, nije broj (NaN) i nulu.

    Podrava sabiranje, oduzimanje, mnoenje, deljenje, poredjenje, konverziju i operaciju kvadratnog korenovanja.

    Primenjuje zaokruivanje na najblii broj model. Generie statusne bite za prekoraenje, podkoraenje i nedozvoljene operacije.

  • Ljubomir Papuga Diplomski rad

    18

    Zbog boljih performansi, uinjena su sledea nestandardna pojednostavljenja:

    Denormalizovani operandi nisu podrani. Hardverska floating-point operacija

    na denormalizovanom operandu vraa NaN (nje broj) i postavlja bit za greku denormalizovanog operanda u FSR.

    Denormalizovan rezultat se uva kao 0 sa setovanim bitom za podkoraenje u FSR. Ovaj metod se uobiajeno naziva Flush-to-Zero (FTZ).

    Prekoraenje kao rezultat floating-point operacije uvek vraa oznaeno ak i ako se time pokree izuzetak.

    Format

    IEEE 754 floating point broj sa jednostrukom tanou se sastoji iz tri polja:

    1-bitno polje za znak, 8-bitno polje povienog eksponenta, 23-bitno polje mantise.

    Vrednost floating point broja n u MicroBlaze-u ima vrednost:

    Ako je eksponent = 255 i mantisa 0, tada je n = NaN, bez obzira na bit

    znak Ako je eksponent = 255 i mantisa = 0, tada je n = (-1)znak * Ako je 0 < eksponent < 255, tada je n = (-1)znak * 2(eksponent 127) * (1,mantisa) Ako je eksponent = 0 i mantisa 0, tada je n = (-1)znak * 2-126 * (0,mantisa) Ako je eksponent = 0 i mantisa = 0, tada je n = (-1)znak * 0

    Za praktinu namenu samo formati 3 i 5 su znaajni, dok ostali formati

    predstavljaju ili greku ili brojeve koji se ne mogu predstaviti u 32-bitnom obliku sa punom tanou. Zaokruivanje

    MicroBlaze FPU primenjuje samo podrazumevani metod zaokruivanja na najblii broj, naznaen u standardu IEEE 754. Po definiciji, rezultat bilo koje floating point operacije daje najbliu vrednost sa jednostruklom tanou beskonano preciznom rezultatu. Ako su dve najblie odgovarajue vrednosti jednako blizu, vraa se ona kod koje je LSB bit 0. Operacije

    Sve MicroBlaze FPU operacije koriste registre opte namene.

  • Ljubomir Papuga Diplomski rad

    19

    Aritmetike operacije

    FPU primenjuje sledee aritmetike operacije:

    sabiranje, FADD oduzimanje, FSUB mnoenje, FMUL deljenje, FDIV kvadratno korenovanje, FSQRT (dostupno ako je C_USE_FPU = 2)

    Poreenja

    FPU primenjuje sledea floating point poreenja:

    manje od, FCMP,LT jednako, FCMP,EQ manje ili jednako, FCMP,LE vece od, FCMP,GT nije jednako, FCMP,NE vee ili jednako, FCMP,GE nesreeno, FCMP,UN (koristi se za NaN)

    Konverzije

    FPU primenjuje sledee floating point konverzije (dostupno ako je C_USE_FPU = 2):

    pretvori iz celobrojne vrednosti sa predznakom u floating point, FLT pretvori iz floating point vrednosti u celobrojnu vrednost s predznakom, FINT

    Izuzeci

    Floating point jedinica koristi redovan mehanizam izuzetaka u MicroBlaze. Kada su omogueni, izuzeci se dogaaju za sve IEEE standardne uslove: podkoraenje, prekoraenje, deljenje nulom i nedozvoljena operacija, kao i za specifian izuzetak za MicroBlaze: greka denormalizovanog operanda. Floating point izuzetak spreava upis u odredini registar (Rd), to dozvoljava upravljau floating point izuzetaka da deluje na ispravnoj registarskoj datoteci.

    2.1.13. Fast Simplex Link (FSL)

    MicroBlaze moe biti konfigurisan da koristi do 16 Fast Simplex Link (FSL) interfejsa, od ega se svaki sastoji iz jednog ulaznog i jednog izlaznog porta. FSL kanali su namenjeni jednosmernom prenosu podataka od take do take. FSL interfejsi u MicroBlaze-u su 32 bita iroki. Zaseban bit naznauje da li je poslata, tj. primljena re kontrolnog tipa ili tipa podataka. Instrukcijom get se prenosi informacija sa FSL porta u registar opte namene, dok se instrukcijom put prenosi podatak u

  • Ljubomir Papuga Diplomski rad

    20

    suprotnom smeru. Postoje etiri tipa za obe instrukcije: blokirajui podatak, neblokirajui podatak, blokirajua kontrola, neblokirajua kontrola. Hardversko ubrzanje pomou FSL

    Svaki FSL obezbeuje procesorskom pipeline-u okruenje s malim kanjenjem, zbog ega su idealni za proirenje procesorske izvrne jedinice ubrzivaima hardvera. Ovakav metod je slian proirenju seta instrukcija sa proilagoenim instrukcijama, ali ima prednost u tome to ne ini celokupnu brzinu procesorskog pipeline-a zavisnu od funkcije prilagoenja. Takoe, ovakva vrsta funkcionalnog proirenja ne zahteva nikakve dodatne zahteve u pogledu softverskih alata.

    2.2. Opis MicroBlaze signalnog interfejsa

    MicroBlaze jezgro je organizovano kao Harvard arhitektura sa posebnim interfejsom magistrala za pristup podacima i instrukcijama. Podrana su tri memorijska interfejsa: Local Memory Bus (LMB), IBM Processor Local Bus (PLB) ili IBM On-chip Peripheral Bus (OPB) i Xilinx CacheLink (XCL). PLB omoguava jednociklusni pristup blok RAM-u sa dva porta smetenom na samom ipu. PLB i OPB interfejsi obezbeuju vezu sa periferijama i memorijom kako na ipu, tako i van njega. XCL interfejs je namenjen za korienje sa specijalizovanim kontrolerima spoljanje memorije. Takoe, MicroBlaze podrava do 16 Fast Simplex Link (FSL) portova, pri emu svaki od njih ima po jedan master i slave FSL interfejs.

    2.2.1. Karakteristike

    MicroBlaze se moe konfigurisati sa sledeim magistralni interfejsima:

    32-bitna verzija PLB V4.6 interfejs 32-bitna verzija OPB V2.0 magistralni interfejs LMB omoguava jednostavan sinhroni protokol za efikasan pristup blok

    RAM-u FSL omoguava brz, nenagledani mehanizam komunikacije XCL omoguava brz mehanizam protoka izmeu kea i kontrolera spoljanje

    memorije, nadgledan sa slave strane Interfejs debagovanja za rad as MDM (Microprocessor Debug Module)

    jezgrom Interfejs traganja za analizu performansi

    2.2.2. PLB interfejs PLB v4.6 podrava 32-bitnu adresnu magistralu. Magistrale za upisivanje i itanje su razdvojene i mogu biti irine 32, 64 ili 128 bita. Prenos podataka preko PLB v4.6 je podeljen u dve faze, adresnu fazu i fazu podataka. U adresnoj fazi se alju

  • Ljubomir Papuga Diplomski rad

    21

    zahtevana adresa i parametri prenosa, dok se u fazi podataka vri sam prenos podataka[2].

    2.2.3. OPB interfejs OPB je deo IBM CoreConnect arhitekture i predstavlja sinhronu magistralu opte namene radi jednostavnog povezivanja razliitih periferija. Neke od karakteristika OPB-a su:

    32-bitna ili 64-bitna magistrala Adrese do 64-bita Podrava 8-bitne, 16-bitne, 32-bitne i 64-bitne slave ureaje Podrava 32-bitne i 64-bitne master ureaje Dinamika veliina magistrale Distribuirana multipleksirana magistrala umesto 3-state drajvera

    OPB predstavlja magistralnu arhitekturu sa mnotvom opcija za poboljanje performansi magistrale. Veina ovih opcija se moe efikasno upotrebiti unutar FPGA arhitekture, ali neke od njih mogu prouzrokovati neefikasno raspolaganje resursima FPGA ili smanjiti brzinu rada[3].

    2.2.4. LMB interfejs

    LMB predstavlja sinhronu magistralu namenjenu prevashodno za pristup blok RAM-u smetenom na ipu. Ona koristi minimalan broj kontrolnih signala i jednostavan protokol kako bi osigurala pristup blok RAM-u unutar jednog mainskog ciklusa.

    MicroBlaze magistralni interfejs sa strane podataka izvrava upravljanje itanjem i upisivanjem tako da se podre sledei prenosi: prenosi podataka tipa bajt, polure i re na ureaje tipa re, prenosi podataka tipa bajt i polure na ureaje tipa pulore i prenosi tipa bajt na ureaje tipa bajt. Samim tim, MicroBlaze ne podrava prenose podataka koji su vei od adresiranog ureaja. Ovakvi tipovi prenosa zahtevaju dinamiku promenu veliine magistrale i konverzije koje nisu podrane od strane MicroBlaze magistralnog interfejsa.

    2.2.5. FSL interfejs

    FSL magistrala obezbeuje komunikacioni kanal od take do take izmeu izlazne FIFO i ulazne FIFO. MicroBlaze moe da ima do 16 master i slave FSL signalnih interfejsa.

    Upisivanje na FSL magistralu MicroBlaze vri pomou instrukcija PUT ili PUTD. Operacija upisivanja prebacuje sadraj registra na izlaznu FSL magistralu. Prebacivanje se vri unutar jednog mainskog ciklusa za upise u FSL u blokirajuem modu (instrukcije PUT i CPUT), pod uslovom da FSL FIFO nije pun. Ako je FSL FIFO pun, procesor se zaustavlja sve dok se ne poniti flag koji ukazuje da je FSL pun. Neblokirajue instrukcije (sa prefiksom n) se uvek obavljaju unutar jednog mainskog ciklusa, ak i ako je FSL pun. Ukoliko je FSL pun, zabranjuje se upis i postavlja se bit prenosa u MSR.

  • Ljubomir Papuga Diplomski rad

    22

    itanje sa FSL magistrale MicroBlaze vri pomou instrukcija GET ili GETD. Operacija itanja prebacuje sadraj ulaznog FSL u registar opte namene. Prebacivanje se obino obavlja u dva mainska ciklusa za itanje sa FSL u blokirajuem modu, ukoliko postoje podaci u FSL FIFO. Ako je FSL FIFO prazan, procesor se zaustavlja na toj instrukciji sve dok je setovan flag koji to oznaava. U neblokirajuem modu, prebacivanje se vri u dva mainska ciklusa, bez obzira da li je FSL prazan ili ne. Ukoliko je FSL prazan, ne vri se prebacivanje podataka i setuje se carry bit u MSR.

    2.2.6. XCL interfejs

    Xilinx CacheLink (XCL) omoguava visoke performanse za pristup spoljanjoj memoriji i projektovan je da se direktno povee na memorijski kontroler sa integrisanim FSL baferima. Ovakav nain povezivanja obezbeuje minimalno kanjenje. Ovaj interfejs je dostupan u MicroBlaze-u samo kada je dozvoljen ke. Dozvoljeno je korienje CacheLink kea na strani instrukcija ili na strani podataka bez keiranja druge strane. Memorijskim lokacijama izvan keiranog opsega se pristupa preko PLB, OPB ili LMB. Keiranom memorijskom opsegu se pristupa preko PLB ili OPB kada je ke softverski onesposobljen. CacheLink transakcije

    Svi pojedinani CacheLink pristupi izvravaju se na osnovu FSL FIFO protoklola:

    Pristupna informacija se kodira preko FSL podataka i kontrolnih signala. Informacija se alje (upisuje) podizanjem signala za dozvolu upisa. Poiljaocu je dozvoljen upis samo ako je pun signal primaoca neaktivan.

    Instrukcijski ke kontroler ne koristi pun signal. Informacije se primaju (uitavaju) podizanjem signala itanja. Primaocu je dozvoljeno itanje samo ako poiljalac signalizira da postoje novi

    podaci.

    CacheLink koristi jedan dolazni (slave) i jedan odlazni (master) FSL po ke kontroleru. Odlazni FSL se koristi za slanje zahteva za pristup, dok se dolazni FSL koristi za prijem zahtevanih ke linija. CacheLink takoe koristi specifian nain kodiranja razmenjenih podataka preko FSL podataka i kontrolnih signala.

    2.2.7. Interfejs za debagovanje

    Interfejs za debagovanje na MicroBlaze-u je projektovan da radi sa Xilinx Microprocessor Debug Module (MDM) IP jezgrom. MDM je kontrolisan od strane Xilinx Microprocessor Debugger (XMD) preko JTAG porta na FPGA: MDM moe da kontrolie vie MicroBlaze procesora istovremeno.

  • Ljubomir Papuga Diplomski rad

    23

    2.2.8. Interfejs trasiranja

    MicroBlaze jezgro generie nekoliko internih signala koji se namenjuju za trasiranje. Ovaj interfejs signala nije standardizovan i preporuljivo je da se ovi signali koriste u skladu sa dokumentacijom Xilinx-a.

    2.2.9. Podeljivost MicroBlaze jezgra

    MicroBlaze jezgro je razvijeno tako da podrava visok stepen podeljivosti od strane korisnika. To omoguava projektovanje procesora u cilju zadovoljavanja odreenih zahteva u pogledu odnosa trokova i performansi. Podeavanje se vri preko parametara koji dozvoljavaju, selektuju ili odreuju veliinu odreenih karakteristika procesora.

    2.3. MicroBlaze binarni interfejs aplikacija

    2.3.1. Tipovi podataka

    MicroBlaze asembleri koriste tipove podataka date u tabeli. Tipovi podataka kao to su data8, data16 i data32 su dati umesto uobiajenih bajt, polu-re i re registara.

    MicroBlaze tip podataka Odgovarajui ANSI C tip podataka Veliina (bajt) data8 char 1 data16 short 2 data32 int 4 data32 long int 4 data32 float 4 data32 enum 4 data16/data32 pointer 2/4

    Tabela 1. Tipovi podataka u MicroBlaze asembleru

    2.3.2. Konvencije o korienju registara

    MicroBlaze arhitektura definie 32 registra opte namene. Ovi registri se dele na promenljive, nepromenljive i namenske.

    Promenljivi registri se koriste kao privremeni i ne oni ne zadravaju vrednosti izvan funkcijskih poziva. Registri R3 do R12 su promenljivi, od kojih se R3 i R4 koriste za vraanje vrednosti pozivnoj funkciji. Registri R5 do R10 se koriste za prosleivanje parametara izmeu podrutina.

    Registri R19 do R31 zadravaju svoj sadraj izvan funkcijskih poziva, te se stoga nazivaju nepromenljivim registrima. Pozvana funkcija ima zadatak da

  • Ljubomir Papuga Diplomski rad

    24

    sauva sadraj ovih nepromenljivih registara koji se koriste. Ove vrednosti se obino uvaju na steku.

    Odreeni registri se koriste kao namenski i programeri ne bi trebalo da ih koriste za druge namene.

    Registi R14 do R17 se koriste za uvanje povratne adrese iz interrupt prekida, podrutina i izuzetaka, datim redosledom. Podrutine se pozivaju korienjem branch i link instrukcija, koje uvaju trenutni sadraj programskog bojaa (PC) u registru R15.

    Pokazivai na male oblasti podataka se koriste za pristup odreenim memorijskim lokacijama sa 16-bitnom neposrednom vrednou.

    Registar R1 uva vrednost pokazivaa steka i on se aurira prilikom ulaska i izlaska iz funkcija.

    Registar R18 se koristi kao privremeni registar za asemblerske operacije. MicroBlaze sadri registre posebne namene kao to su: programski broja

    (PC), mainski statusni registar (MSR), registar statusa izuzetaka (RESR), registar adrese izuzetaka (REAR), floating point statusni registar (RFSR), registar odredita grananja (RBTR), registar podataka izuzetaka (REDR), registre za upravljanje memorijom (RPID, RZPR, RTLBLO, RTLBHI, RTLBX, RTLBSX) i registre verzije procesora (RPVR0-RPVR11). Ovi registri nisu mapirani direktno u registarskom fajlu, te je korienje ovih registara drugaije od korienja registara opte namene. Vrednosti registara posebne namene se mogu prebaciti u i iz registara ope namene korienjem MTS i MFS instrukcija respektivno.

    2.3.3. Memorijski model

    Memorijski model za MicroBlaze deli podatke na etiri razliita dela: oblast malih podataka, oblast podataka, oblast uobiajenih neinicijalizovanih podataka, oblast konstanti. Oblast malih podataka

    Globalno inicijalizovane promenljive koje su male po veliini se uvaju u ovoj oblasti. Prag za odreivanje veliine promenljive koja se uva u oblasti malih podataka je postavljen na 8 bajtova u MicroBlaze C kompajleru, ali se on moe promeniti zadavanjem komandne opcije komplajleru. Oblasti malih podataka se pristupa korienjem registra R13 i 16-bitnog ofseta. Raspodela malih promenljivih unutar ove oblasti umanjuje potrebu za dodavanje IMM instrukcija unutar koda radi pristupa globalnim promenljivima. Svakoj promenljivoj unutar oblasti malih podataka se moe pristupiti i korienjem apsolutne adrese. Oblast podataka

    Relativno velike inicijalizovane promenljive se smetaju u oblast podataka, kojoj se moe pristupiti ili preko registra R13 ili korienjem apsolutne adrese, u zavisnosti od komandne opcije date kompajleru.

  • Ljubomir Papuga Diplomski rad

    25

    Neinicijalizovana oblast

    Neinicijalizovane globalne promenljive se raspodeljuju unutar ove oblasti kojoj se pristupa ili preko registra R13 ili preko apsolutne adrese. Oblast konstanti

    Konstante se smetaju u read-only oblast malih podataka kojem se pristupa pomou registra R2. Kompajler generie odgovarajue globalne pokazivae koji imaju ulogu baznih pokazivaa. Vrednosti osnova oblasti malih podataka (koje se uvaju u registru R2) odreuje linker u poslednjoj fazi linkovanja.

    2.3.4. Upravljanje interrupt prekidima i izuzecima

    MicroBlaze rezervie odreene adrese za upravljanje interrupt prekidima i izuzecima, kao to pokazuje tabela. Na ovim lokacijama se upisuje kod odgovarajuih rukovodilaca.

    Adresa skoka Oznaka Start / Reset 0x0 _start Korisniki izuzetak 0x8 _exception_handler Interapt 0x010 _interrupt_handler Prekid (HW / SW) 0x18 - Hardverski izuzetak 0x20 _hw_exception_handler Rezervisano za buduu upotrebu 0x28 0x4F -

    Tabela 2. Upravljanje interrupt prekidima i izuzecima

    2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: MicroBlaze tip podataka: fill_3: data8: char: 1: data16: short: 2_2: data32: int: 4_2: data32_2: long int: 4_3: data32_3: float: 4_4: data32_4: enum: 4_5: data16data32: pointer: 24: 23: 24_2: Start Reset: 0x0: start: 0x8: exceptionhandler: Interapt: 0x010: interrupthandler: 0x18: 0x20: 0x28 0x4F: 25: