microblazees.elfak.ni.ac.rs/papers/inikolic - microblaze procesor.pdf · 2013-12-06 · protočna...

119
5 MicroBlaze Procesor Kratak pregled upravljanja www.Xilinx.com UG081(V9.0) 1-800-255-7778 MicroBlaze Processor Kratak pregled upravljanja Razvoj dela EDK 1.0 i UG081 (V9.0)

Upload: others

Post on 05-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

5 MicroBlaze Procesor Kratak pregled upravljanja www.Xilinx.com UG081(V9.0) 1-800-255-7778

 MicroBlaze  Processor Kratak pregled upravljanja 

Razvoj dela EDK 1.0 i UG081 (V9.0)

Page 2: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

6

Sadržaj

O ovom delu.....................................................................................................................9

Arhitektura microblaze procesora...............................................................10

Pregled .................................................................................................................................11

Klasifikacija podataka i endiannes....................................................................................12

Instrukcije............................................................................................................................13

Registri .................................................................................................................................25 Glavni registri....................................................................................................................25 Specijalni namenski registri ..............................................................................................26

Programski brojač (PC) .................................................................................................26 Mašinski registar (MSR) ...............................................................................................26 Adresni registar (EAR)..................................................................................................31 Exception Status Registar (ESR)...................................................................................32 Branch registar (BTR) ..................................................................................................35 Registar sa pokretnom tačkom FSR ..............................................................................36 Registar podataka EDR .................................................................................................36 Procesno identifikacioni registar PIB............................................................................37 Zona zaštitnog registra ZPR ..........................................................................................37 Translation Look-Aside Buffer Low Register (TLBLO) ..............................................38 Translation Look-Aside Buffer High Register (TLBHI)...............................................41 Translation Look-Aside Buffer Index Register (TLBX)...............................................42 Registar verzije procesora (PVR) ..................................................................................43

Protočna struktura..............................................................................................................44 Trostepeni protočni sistem ................................................................................................45 Petostepeni protočni sistem...............................................................................................45 Kašnjenje zapete................................................................................................................45

Memorijska struktura ........................................................................................................46

Privilegovane instrukcije....................................................................................................46

Upravljanje virtuelnom memorijom .................................................................................47 Realni mod ........................................................................................................................48 Virtuelni mod ....................................................................................................................49

Reset, prekidi, izuzeci i pauze ............................................................................................50 Reset ..................................................................................................................................50

Ekvivalentni pseudokod ................................................................................................50 Hardverski izuzeci.............................................................................................................50

Ekvivalentni pseudokod ................................................................................................51 Pauze .................................................................................................................................51

Hardveske pauze............................................................................................................52 Softverski pauze ............................................................................................................52

Page 3: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

7 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Kašnjenje .......................................................................................................................52 Ekvivalentni pseudokod ................................................................................................52

Prekidi ...............................................................................................................................52 Kašnjenje .......................................................................................................................52

Instrukcija keš.....................................................................................................................53 Pregled...............................................................................................................................53 Opšta funkcionalnost keš instrukcije.................................................................................53 Operacije instrukcijskog keša............................................................................................54 Softverska podrška keš instrukcije....................................................................................54

MSR bit..........................................................................................................................54 WIC instrukcija..............................................................................................................54

Keš podaci............................................................................................................................55 Opis ...................................................................................................................................55 Opšte funkcije keš podataka..............................................................................................55 Operacije podacionog keša................................................................................................56 Softverska podrška podacionog keša ................................................................................56

MSR bit..........................................................................................................................56 WDC instrukcija ............................................................................................................56

Jedinica sa pokretnom zapetom (FPU) .............................................................................57 Pregled...............................................................................................................................57 Format ...............................................................................................................................57 Operacije ...........................................................................................................................58

Aritmetičke operacije ....................................................................................................58 Poređenje .......................................................................................................................58 Konverzija .....................................................................................................................58

Izuzeci ...............................................................................................................................58

Otklanjanje grešaka i kopiranje........................................................................................59 Otklanjanje grešaka ...........................................................................................................59 Kopiranje...........................................................................................................................59

Opis signalnog interfejsa Microblaze-a..................................................61

Pregled .................................................................................................................................61 Opcije ................................................................................................................................62

Pregled Microblaze I/O ......................................................................................................63

Opis interfejsa Procesor Local Bus (PLB)........................................................................69

Opis interfejsa On-Chip Peripheral Bus (OPB)...............................................................69

Opis interfejsa Local Memory Bus (LMB).......................................................................69 Interfejs LMB signala........................................................................................................70

Addr[0:31] .....................................................................................................................70 Byte_Enable[0:3]...........................................................................................................70 Data_Write[0:31]...........................................................................................................71 AS ..................................................................................................................................71 Read_Strobe...................................................................................................................71 Write_Strobe..................................................................................................................71 Data_Read[0:31]............................................................................................................72

Page 4: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

8

Ready .............................................................................................................................72 Clk .................................................................................................................................72

LMB izvršavanja ...............................................................................................................72 Opšte operacije upisa.....................................................................................................72 Opšte operacije čitanja...................................................................................................73 Operacija upisa back-to-back ........................................................................................73 Operacija čitanja back-to-back jednog ciklusa..............................................................73 Kombinovana opoeracija READ/WRITE tipa back-to-back ........................................74

Čitanje i upis podataka ......................................................................................................74

Opis interfejsa Fast Simplex Link (FSL) ..........................................................................74 Interfejs signala master FSL..............................................................................................75 Interfejs signala slave FSL ................................................................................................75 FSL prenosi .......................................................................................................................76

Operacija upisa FSL magistrale.....................................................................................76 Operacija čitanja FSL magistrale ..................................................................................76

Opis interfejsa Xilinx CacheLink (XCL)..........................................................................77 Konfiguracija jezgra Microblaze-a....................................................................................78

MicroBlaze aplikacije binarnog interfejsa...........................................79

Tipovi podataka ..................................................................................................................80

Konvencija magacina..........................................................................................................80

Model memorije ..................................................................................................................82 Polje kratkih podataka.......................................................................................................82 Polje podataka ...................................................................................................................82 Slova i konstante ...............................................................................................................82

Obrada prekida i izuzetaka................................................................................................83

Skup instrukcija arhitekture MicroBlaze-a.........................................84

Notacija ................................................................................................................................84

Format..................................................................................................................................85 Tip A..............................................................................................................................85 Tip B..............................................................................................................................86

Instrukcije............................................................................................................................86

Page 5: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

9 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Uvod

O ovom delu

Ovde će biti reči o 32. Bitnom Microblaze procesoru koji je deo usavršenog razvojnog sistema. Opis sadrži nekoliko koraka i to:

1. korak – Arhitektura Microblaze procesora – suština je u budućnosti microblaze procesora, gde se mogu dobiti informacije o Big-Endian, formatu suprotnosti bitova, 32. bitnom registru i jednostavnom (Simplex Link) interfejsu.

2. korak – Microblaze opis signalnog interfejsa – opisan je signalni interfejs koji se može koristiti za konekciju Microblaze procesora.

3. korak – Upotreba Microblaze signalnog interfejsa – opis binarnog interfejsa koji je značajan za razvoj softvera

4. korak – Set instrukcija arhitekture Microblaze procesora – Obezbeđuje notaciju, formate kao i instrukcije za skup instrukcija arhitekture mikroblaze procesora.

Page 6: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

10 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Korak 1

Arhitektura microblaze procesora

Ovaj korak sadrži izgled Microblaze procesora u budućnosti, kao i detaljan opis arhitekture, uključujući Big Endian bit reversed format, 32. bitni registar, upravljanje virtuelnom memorijom, podrška keš softveru i jednostavan interfejs (Fast Smplex Link). Sačinjavaju ga sledeće oblasti:

a) Pregled

b) Vrste podataka i Endiannes

c) Instrukcije

d) Registre

e) Arhiotektura snabdevanja

f) Arhitektura memorije

g) Poverljive instrukcije

h) Upravljanje virtualnom memorijom

i) Reset, prekid, izuzetak i pauza

j) Keš instrukcije

k) Keš podaci

l) Jednostavan interfejs

m) Pronalaženje i otklanjanje grešaka

n) FPU

Page 7: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

11 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Pregled

Microblaze procesor sa ugrađenim lakim jezgrom je računar sa skupom umanjenjih instrukcija, pogodan za pravljenje LPGAs čipova (programabilno gejtovsko polje) u Xilinx-u. Funkcionalni blok dijagram Microblaze procesora prikazan je na slici 1.

Slika 1. Blok dijagram jezgra microblaze procesora

Microblaze jezgro je tako načinjeno da dozvoljava korišćenje skup specifičnih karakteristika, koje zahteva projekat koji projektujemo. Skup bitnih odlika koje ovaj procesor podržava su:

a) Trideset dvo bitni registar b) 32. Bitna instrukcijska reč sa tri operanda i dva adresna koda c) 32. Bitni adresni BUS d) Pojedinačno izdavanje naloga

Dodavanjem ovih odlika, microblaze procesor je parametrizovan i dozvoljava selekciju ovih dodatih karakteristika. Stara verzija microblaze procesora ne podržava ceo skup opstih karakteristika

Page 8: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

12

opisane ovim uputstvom. Tek nešto kasnija verzija ovog procesora (7.10) podržava sve opcije.

Klasifikacija podataka i endiannes

Microblaze koristi Big Endian bit-reversed format za prikaz podataka. Tipovi podataka koje microblaze hardver podržavao su tipa reč, polureč i bajt. Bit i bajt organizacija ovih datih vrsta podataka je prikazana sledećim tabelama.

Tabela 1. Tip reč

Tabela 2. Tip polureč

Tabela 3. Tip bajt

Page 9: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

13 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Instrukcije

Sve instrukcije microblaze procesora su 32. bitne i definisane na jedan od dva načina, tip A ili tip B. Instrukcije tipa A imaju do dva izvorišna registra i jedan odredišni registar za operande. Instrukcije tipa B imaju jedan izvorišni registar i 16-bitni neposredni operand (koji ima ekstenziju 32 bita). Instrukcije ovog tipa imaju pojedinačni odredišni registar. Instrukcije su podeljene u sledećim funkcionalnim kategorijama:

- aritmetičke - logičke - branch - unošenje/memorisanje - specijalne

U tabeli 4 prikazan je skup instrukcija microblaze procesora. Međutim, u koraku 4 ’’Set instrukcija arhitekture Microblaze procesora’’, dat je dataljniji opis značenje ovih instrukcija. U tabeli 5 opisana je nomenklatura instrukcija pomoću lakše i semantičke instrukcije.

Page 10: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

14

Tabela 4. Nomenklatura instrukcija microblaze procesora

Page 11: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

15 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 12: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

16

Tabela 5. Rezime instrukcija microblaze procesora

Page 13: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

17 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 5. Rezime instrukcija microblaze procesora (nastavak)

Page 14: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

18

Page 15: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

19 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 5. Rezime instrukcija microblaze procesora (nastavak)

Page 16: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

20

Tabela 5. Rezime instrukcija microblaze procesora (nastavak)

Page 17: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

21 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 5. Rezime instrukcija microblaze procesora (nastavak)

Page 18: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

22

Tabela 5. Rezime instrukcija microblaze procesora (nastavak)

Page 19: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

23 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 20: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

24

Tabela 5. Rezime instrukcija microblaze procesora (nastavak)

Page 21: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

25 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Registri

Arhitektura insrukcija microblaze procesora je ortogonalna. Poseduje trideset i dva 32-bitna glavna registra i do osamnaest specijalnih 32-bitnih registra, zavisno od izbora konfiguracije.

Glavni registri

Trideset dva 32-bitna glavna registra numerisana su sa R0 – R31. Na slici 2 prikazan je izgled registra, a u tabeli 6 dat je opis prostih registra kao i registra za reset vrednosti.

Slika 2.

Tabela 6. Registar R0-R31

Page 22: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

26

Specijalni namenski registri

Programski brojač (PC)

Programski brojač je 32-bitni kod za izvršenje instrukcija. Može da se čita sa MFS instrukcijom, ali ne može da se upisuje sa MTS instrukcijom. Kad se koristi MFS instrukcija, programski brojač je specifično podešen Sa=0x0000. Tabelom 7 opisan je programski brojač.

Tabela 7. Programski brojač

Mašinski registar (MSR)

Mašinski registar sadrži kontrolne i bitne bitove za procesor. Može biti čitan MFS instrukcijom. Kada se čita MSR, bit 29 se kopira u 0. Mašinski registar MSR može biti ispisan na jedan od sledećih načina, MTS instrukcijom ili MSRSET i MSRCLR instrukcijom. Kada je ispisan MSR, čim se carry bit menja, ostali bitovi se menjaju jedan vremenski ciklus kasnije. Kada se upotrebljava sa MTS ili MFS instrukcijom, MSR je specifično podešen Sx=0x0001. Izgled mašinskog registra MSR prikazan je na slici 3, a detaljan opis rada dat je u tabeli 8.

Slika 3. Mašinski registar (MSR)

Page 23: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

27 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 8. MSR

Page 24: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

28

Page 25: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

29 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 8. MSR (nastavak)

Page 26: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

30

Page 27: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

31 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 8. MSR (nastavak)

Adresni registar (EAR)

Asresni registar se smešta upravo na load/store adresi, i zbog tog uzroka javljaju se sledeći izuzeci:

- izuzetak neporavnatosti pristupa, gde se misli na neporavnatosti pristupa adresi

- DPLB ili DOPB izuzetak je specifična mana PLB ili OPB pristupa adresi podataka

- Izuzetak memorisanje podataka, to je specifičan pristup virtualnoj adresi

- Izuzetak memorisanje instrukcija, to je efektivnije čitanje adresa

Page 28: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

32

- Izuzetak instrukcije TLB, efektivnije čitanje adresa Sadržaj ovog registra je neodređen za sve ostale izuzetke. Kada se čita sa MFS instrukcijom EAR se podešava Sa=0x0003. Adresni registar ilustrovan je na slici 4, a opis je prikazan tabelom 9.

Slika 4. Adresni registar (EAR) Tabela 9. EAR

Exception Status Registar (ESR)

Ovaj registar sadrži statusni bit za procesor. Kada se čita sa instrukcijom MFS, podešen je Sa=0x0005. Prikazan je na slici 5, a opisan tabelom 9.

Slika 5. ESR

Tabela 9. ESR

Page 29: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

33 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 10. Exception Specific Status (ESS)

Page 30: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

34

Page 31: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

35 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 10. Exception Specific Status (ESS) (nastavak)

Branch registar (BTR)

Branch registar je jedan od postojanih, ako je microblaze procesor konfigurisan sa izuzecima. Registar memoriše branch adrese, za sve odložene instrukcije kad se izvršava MSR(EIP)=0. Ako je izuzetak prouzrokovao instrukciju koja je odložena (ESR(DS)=1), i ako bi se vratio na izvršenje memorijske adrese BTR umesto na izuzetku, memorijska adresa će se upisati u R17. Kada se vrši čitanje pomoću instrukcije MFS, BTR je podešena na Sa=0x000B. BTR registar prikazan je na slici 6, a opis u tabeli 11.

Slika 6. Branch registar (BTR) Tabela 11. Branch registar (BTR)

Page 32: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

36

Registar sa pokretnom tačkom FSR

Ovaj registar sadrži status bit za jedinicu sa pokretnom tačkom. Može biti čitan sa MFS, a upisan sa MTS instrukcijom. Kada se čitaju ili upisuju registri su podešeni Sa=0x0007. Slikom 7 prikazan je izgled FSR, a tabelom 12 opisan je ovaj registar.

Slika 7. Registar sa pokretnom tačkom (FSR) Tabela 12. FSR

Registar podataka EDR

Registar podataka memoriše pročitane podatke sa FSL linka uzrokovane FSL izuzetkom. Sadržaj ovog registra ne definiše se za ostale izuzetke. Kada se registar čita sa MFS instrukcijom, EDR je podešena Sa=0x000D. Izgled je ilustrovan na slici 8, a opis je dat tabelom 13.

Slika 8. EDR

Page 33: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

37 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 13. EDR

Procesno identifikacioni registar PIB

PIB registar je koristio jedinstveni softverski proces, za vreme translacije MMU adrese. Kontrolisanje C_MMU je jedna od opcija microblaze procesora. Kada se pristupilo sa MFS i MTS instrukcijom, PIB se podešava Sa=0x1000. Pristupa se registru, ukoliko se upravljanje memorijom vrši specijalnim registarskim parametrom C_MMU_TLB_ACCESS. Takođe, PIB se koristi kada se pristupa unutrašnjosti TLB.

- Kada se upisuju vrednosti u Translation Look-Aside Buffer High (TLBHI), PIB je memorisan u TIB polju koje je unutar TLB

- Kada se čita TLBHI vrednosti u TID polju se memorišu u PIB Slika 9. Prikazuje izgled, a tabela 14 opisuje PIB.

Slika 9. PIB

Tabela 14. PIB

Zona zaštitnog registra ZPR

ZPR se koristio za obaranje MMU memorijske zaštite definisane u unutrašnjosti TLB. Kada se pristupa sa MFS i MTS instrukcijom, ZPR se podešava Sa=0x1001. Pristupa se registru, ukoliko se upravljanje memorijom vrši specijalnim registarskim parametrom

Page 34: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

38

C_MMU_TLB_ACCESS. Sledećom slikom ilustrovan je izgled, a tabelom 15 opisan je ZPR.

Slika 10. ZPR

Tabela 15. ZPR

Translation Look-Aside Buffer Low Register (TLBLO)

Translation Look-Aside Buffer Low Register (TLBLO) se koristi za pristup MMU jednostranog Look-Aside buffer (UTLB) unosa. Kontrolisan je od strane C MMU konfiguracije microblaze-a. Registar je, ako je ostvareno da je C MMU veća od 1. Kada se pristupa sa MFS i MTS instrukcijama, (TLBLO) se podešava Sa=0x1003. Prilikom pisanja ili čitanja TLBLO, UTLB se indeksira dostupnim TLBX registrom. Registar je čitljiv u skladu sa posebnim registarskim parametrom koji upravlja memorijom C_MMU_TLB_ACCESS.

Napomena: UTLB nije resetovan spoljnim reset ulazima: reset i Debug_Rst.

Slikom 11. prikazan je izgled registra TLBLO, a tabelom 16 kratak opis rada i resetovanje vrednosti.

Page 35: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

39 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Slika 11. TLBLO

Tabela16.TLBLO

Page 36: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

40

Page 37: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

41 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Translation Look-Aside Buffer High Register (TLBHI)

Translation Look-Aside Buffer High Register (TLBHI) se koristi za pristup MMU jednostranog Look-Aside buffer (UTLB) unosa. Kontrolisan je od strane C MMU konfiguracije microblaze-a. Registar je, ako je ostvareno da je C MMU veća od 1. Kada se pristupa sa MFS i MTS instrukcijama, (TLBHI) se podešava Sa=0x1004. Prilikom pisanja ili čitanja TLBHI, UTLB se indeksira dostupnim TLBX registrom. Registar je čitljiv u skladu sa posebnim registarskim parametrom koji upravlja memorijom C_MMU_TLB_ACCESS.

PID se koristi kad se pristupa jednom od TLB unosa:

• Kada se upisuje TLBHI, vrednost PID je memorisana u TID polju TLB unosa.

• Kada se čita TLBHI, vrednost TID polja je memorisana u PID. Napomena: UTLB nije resetovan spoljnim reset ulazima: reset i Debug_Rst. Slikom 12. prikazan je izgled registra TLBHI, a tabelom 17 kratak opis rada i resetovanje vrednosti.

Slika 12. TLBHI Tabela 17. TLBHI

Page 38: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

42

Tabela 17. TLBHI (nastavak)

Translation Look-Aside Buffer Index Register (TLBX)

Translation Look-Aside Buffer Index Register (TLBX) koristi se kao indeks jednostranog prenosa Look-Aside Buffer-a kada se pristupa

Page 39: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

43 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

TLBLO i TLBHI registrima. Kontrolisan je od strane C MMU konfiguracije microblaze-a. C MMU konfiguracije microblaze-a. Registar je, ako je ostvareno da je C MMU veća od 1. Kada se pristupa sa MFS i MTS instrukcijama, (TLBX) se podešava Sa=0x1002. Slikom 13. prikazan je izgled registra TLBX, a tabelom 18 kratak opis rada i resetovanje vrednosti.

Slika 13. TLBX

Tabela 18. TLBX

Registar verzije procesora (PVR)

Registar verzije procesora (PVR) kontrolisan je C_PVR konfiguracijom microblaze-a.

• Kada je C_PVR postavljena na 0, procesor neće izvršavati

bilo kakve PVR i MSR(PVR)=0. • Kada je C_PVR postavljeno na 1, microblaze implementira

samo prvi registar.

Kada se čita sa MFS instrukcijom, PVR se podešava Sa=0x200x, gde je x broj između 0x0 i 0xB. Tabelom 19 dati su bitni opisi i vrednosti PVR.

Tabela 19. PVR

Page 40: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

44

Protočna struktura

Microblaze instrukcije izvršavaju se protočno. Kod većinu instrukcija, svaka faza traje oko 1 sat za potpun ciklus. Shodno tome, broj ciklusa takta potreban za jednu instrukciju, jednak je broju nivoa arhitekture. Nekoliko instrukcija zahtevaju više vremenskih ciklusa da se kompletno izvrše. Kad su upotrebljene sporije memorije, pribavljanje instrukcija može potrajati nekoliko ciklusa. Ova dodatna kašnjenjea direktno utiču na protočnost. Microblaze koristi instrukcije sa bafera, čime smanjuje kašnjenje memorije. Kada se koristi protočnost, u toku pribavljanja može se učitati nova instrukcija direktno sa bafera, umesto da se čeka pristupanje memoriji.

Page 41: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

45 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Trostepeni protočni sistem

Koristeći princip protočnosti, obrada instrukcije se može podeliti na sledeća tri koraka: pribavljanje, dekodiranje i izvršenje instrukcija

Slika 14. Trostepeni protočni sistem

Petostepeni protočni sistem

Kada je optimizacija nemoguća, protočni sistem se deli na pet koraka koji poboljšavaju performanse: pribavljanje (IF), dekodiranje (ID), izvršenje (EX), pristup memoriji (ME), upis rezultata (WB).

Slika 15. Petostepeni protočni sistem

Kašnjenje zapete

Kada se izvršava jedan deo sa kašnjenjem zareza, samo je korak pribavljanja ispunjen u microblaze-u. Instrukciju dekodiranje (Branch Delay Slot) je dozvoljeno završiti. Ova tehnika efikasno smanjuje grananje dva ciklusa u jedan. Branch instrukcija sa kašnjenjem zapete ima priključeno D na skraćenici instrukcije. Na primer, BNE instrukcija ne izvršava se naknadno (nema kašnjenja zareza), dok BNED instrukcija se izvršava pre kontrolnog prenosa na branch lokaciji.

Page 42: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

46

Memorijska struktura

Microblaze je napravljen sa harvardsko memorijskom strukturom, pristup podacima i instrukcijama se vrši u odvojenim adresnim poljima. Svaki adresni prostor je opsega 32 bita (to jest ograničen do 4G za instrukcije i memorijske podatke respektivno). Opseg instrukcija i memorijskih podataka može biti napravljen preklapanjem ili mapiranjem fizičke memorije. Korisno je i otkloniti greške softvera. Instrukcije i interfejs podataka su širine 32 bita i koriste formate big-endian i bit-reversed. Microblaze koristi reč, polureč i bajt za predstavljanje podataka u memoriji. Podaci moraju biti dostupni i poređani. Reč mora biti reč, polureč obavezno polureč, osim ako je procesor drugačije konfigurisan. Sve instrukcije moraju biti dostupne i uređene. Microblaze ne pristupa odvojeno podacima na ulazno izlaznim portovima (IO) i memoriji. Microblaze procesor koristi tri interfejsa za pristup memoriji i to:

• Lokalni memorijski bus (LMB) • Procesorski lokalni bus (PLB) ili on-chip periferijski bus (OPB) • Xilinx CacheLink (XCL)

Opseg LMB memorijske adrese ne sme da se preklapa sa memorijskim adresama PLB,OPB i XCL. Microblaze instrukcije i cache podaci mogu biti konfigurisani sa 4 ili 8 linijskih reči. Kada se koriste duže linije, pripremljeno je više bitova, koji generalno improvizuju performanse softvera sa sekventnim pristupom.

Privilegovane instrukcije

Sledeće microblaze instrukcije su privilegovane:

• GET, PUT, NGET, NPUT, CGET, CPUT, NCGET, NCPUT • WIC, WDC • MTS • MSRCLR, MSRSET • BRK • RTID, RTBD, RTED • BRKI

Page 43: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

47 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Postoji šest načina za dozvolu rada korisničkog moda i virtualnog moda:

1. Hardversko generisanje reseta 2. Hardverski izuzetak 3. Non-maskable pauza ili hardverska pauza 4. Prekid 5. Izvršenje instrukcije "BRALID Re, 0x8”, za izvođenje i

korišćenje vektorske analize 6. Izvršenje softverski isprekidanih instrukcija “BRKI”, preko

fizičke adrese 0x8 ili 0x18 U svim ovim slučajevima, osim hardverskog reseta, status korisničkog i virtuelnog moda sačuvan je u MSR UMS i VMS bitu. Aplikacioni programi prenosa kontrolišu se na uobičajeni način sistem-servis (privilegovani programski mod) i koriste BRALID ili BRKI instrukciju sa fizičke adrese 0x8. Izvršavanjem ovih instrukcija, proces sistem poziva je izuzetak. Izvršenje sistem-servisa u određenom okruženju zahteva izvršenje skupa uvodnih instrukcija tog okruženja. Ovakve instrukcije obično kreiraju blok za skladištenje dolaznih proceduralnih informacija, obnavljaju i pokreću indikatore i čuvaju kratkotrajne (isparljive) registre. Uvodni kod može biti umetnut povezivačem koji kreira izvršni modul, ili može biti deo jednog od sistema prekida ili sistema biblioteka.

Upravljanje virtuelnom memorijom

Programi pokrenuti microblaze procesorom koriste efektivne adrese pristupa koje zauzimaju 4G memorijskog prostora. Procesor može protumačiti ove adrese prostora na jedan od dva načina zavisno od načina prevođenja:

• U realnom modu, efektivne adrese su upotrebljene za pristup fizičkim adresama

Page 44: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

48

• U virtuelnom modu, efektivne adrese su prevedene u fizičke adrese koje upravljaju virtuelnom memorijom procesora

Virtuelni mod obezbeđuje sistemski softver sa mogućnošću relociranja programa i podataka na fizičkim adresama. Sistemski softver može pomerati neaktivne programe i podatke sa fizičke memorije kada prostor zahteva korišćenje aktivne programe i podatke. Virtuelni mod omogućava veću kontrolu i zaštitu nad memorijom. Blokovi memorije manji od 1kb mogu biti individualno zaštićeni od neovlašćenog pristupa. Ova sposobnost daje mogućnost simultanog ili gotovo simultanog korišćenja više programa. U microblaze-u virtuelni mod je implementiran od strane upravljačke jedinice (MMU), kada je C_USE_MMU postavljen na 3. MMU kontrole efektivnih adresa mapiraju fizičke adrese i podržavaju memorijse zaštite. Upotrebom ovih mogućnosti, sistemski softver može implementirati zahtev virtualne memorije i upravljanje ostalim memorijskim šemama. Microblaze MMU implementacija je zasnovana nax PowerPC™ 405, za ostale detalje pogledati dokument PowerPC Processor Reference Guide MMU mogućnosti su prikazane na sledeći način:

• Prevod efektivnih adresa u fizičke adrese • Kontrola stepena prilikom prevođenja adresa • Pruža dodatnu zaštitu virtuelnog moda kontrolom procesa • Pruža nezavisnu kontrolu adresnim instrukcijama i

adresnim podacima prevođenjem i zaštitom • Podržava 8 veličina: 1 kB, 4 kB, 16 kB, 64 kB, 256 kB, 1

MB, 4 MB i 16 MB, bilo koja kombinacija ovih veličina može biti upotrebljena u sistemu.

• Softver upravlja i strategijom zamene

Realni mod Processor pregledava memoriju kada prikuplja instrukcije i pristupa podacima sa load ili store instrukcijom. Programi referentnu memoriju lociraju upotrebom 32. bitnom efektivnom adresom, izračunatu od strane procesora. Kada je realni mod uključen, fizička adresa je identična efektivnoj adresi i processor koristi pristup fizičkim adresama. Nakon reseta, processor radi u realnom modu. Pristup podacima fizičke memorije (load and store) su izvedeni u realnom modu primeno efektivnih adresa. Realni mod ne predviđa

Page 45: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

49 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

system sa virtuelnim prevođenjem adresa, ali ceo pristup memorijske zaštite je dostupan, kada je C_USE_MMU > 1.

Virtuelni mod

U virtuelnom modu, processor prevodi efektivne adrese u fizičke primenom procesa koji je prikazan na sledećoj slici.

Slika 16. Virtuelni mod, prevođenje adresa Svaka adresa prikazana je na slici 16 i sadrži polje sa brojem strane i polje ofseta. Broj strane predstavlja deo adrese koja je prevedena pomoću MMU. Offset predstavlja bit ofseta i nije preveden pomoću MMU. Virtuelna adresa sadrži dodatno polje, pozvano procesom ID, koji je preuzet iz PID registra. Sistemski procesor može koristiti PID, jedinstvenu identifikaciju softverskih procesa, pokrenutu od strane procesora. Kombinacija PID i efektivnog broja strana odnosi se na virtuelni broj strana.

Page 46: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

50

Sistemski softver podržava tabelu prevoda, koja sadrži zapise koji su potrebni za prevod virtualne u fizičku stranu. Veličina strane definiše stranu prevoda, broj strana i ofset polje. Na primer, kada je veličina strane 4kB, polje broja sadrži 20 bita, a ofset polja 12 bita.

Reset, prekidi, izuzeci i pauze

Microblaze podržava reset, prekide, izuzetke, pauze i hardverske izuzetke. Sledeće poglavlje opisuje izvršenje i povezanost svakog od tih događaja.

Prioritet imaju dogđaji sa vrha: 1. Reset 2. Hardverski izuzetak 3. Ne maskirana pauza 4. Pauza 5. Prekidi 6. Koristan vektor

Reset Kada se dogodi reset ili Debug_Reset, microblaze protočna struktura počinje da prikuplja instrukcije za vektor reseta (adresa 0x0). Ovi spoljni reseti su na visokom aktivnom nivou za koje bi trebalo minimum 16 ciklusa.

Ekvivalentni pseudokod

PC ← 0x00000000 MSR ← C_RESET_MSR EAR ← 0; ESR ← 0; FSR ← 0 PID ← 0; ZPR ← 0; TLBX ← 0

Hardverski izuzeci

Page 47: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

51 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Microblaze može biti konfigurisan sledećim internim uslovima: ilegalne instrukcije, instrukcije i podaci greške bus-a i nepoređanih pristupa. Deljenje nulom može biti uključeno jedino ako je procesor napravljen hardverskim deliocem. Kada je konfigurisan sa jedinicom koja upravlja hardverskom memorijom, može biti upravljanje memorijom sledećim određenim izuzecima: ilegalna instrukcija izuzetka, izuzetak memorisanje podataka, izuzetak memorisanja instrukcija

Ekvivalentni pseudokod

ESR[DS] ← exception in delay slot if ESR[DS] then BTR ← branch target PC if MMU exception then if branch preceeded by IMM then r17 ← PC - 8 else r17 ← PC - 4 else r17 ← invalid value else if MMU exception then if instruction preceeded by IMM then r17 ← PC - 4 else r17 ← PC else r17 ← PC + 4 PC ← 0x00000020 MSR[EE] ← 0, MSR[EIP]← 1 MSR[UMS] ← MSR[UM], MSR[UM] ← 0, MSR[VMS] ← MSR[VM], MSR[VM] ← 0 ESR[EC] ← exception specific value ESR[ESS] ← exception specific value EAR ← exception specific value FSR ← exception specific value

Pauze

Postoje dve vrste pauza

• Hardverske (spoljne) pauze • Softverske (unutrašnje) pauze

Page 48: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

52

Hardveske pauze

Hardverski brejkovi obavljaju se spoljnim brejk signalom. Brejk, instrukcija izvršenja komplementirana je kada je instrukcija dekodiranja premeštena u branch brejk vektor (adresa 0x8). Povratna adresa pauze je automatski učitana u registar opšte namene R16.

Softverski pauze

Da bi napravili softverske pauze moraju se koristiti BRK i BRKI instrukcije.

Kašnjenje

Vreme potrebno za upis microblaze pauze zavisi od trenutne instrukcije u izvršenju i kašnjenja memorisanja brejk vektora.

Ekvivalentni pseudokod r16 ← PC PC ← 0x00000018 MSR[BIP] ← 1 MSR[UMS] ← MSR[UM], MSR[UM] ← 0, MSR[VMS] ← MSR[VM], MSR[VM] ← 0

Prekidi

Mikroblaze podržava jedan spoljni prekid (povezan na ulazni port). Mikroblaze reaguje samo ako se prekine dozvola prekida koji je postavljen u mašinskom registru na 1. Na prekid, instrukcija izvršenja kompletirana je kada je instrukcija dekodiranja premeštena u područje prekid vektora (adresa 0x10). Povratna adresa pauze je automatski učitana u registar opšte namene R14.

Kašnjenje

Vreme potrebno da microblaze unese prekid, zavisi od

konfiguracije procesora i kašnjenja kontrole memorisanja vektorskog prekida. Ako je microblaze konfigurisan da postoji hardverski delioc, najveće kašnjenje se dešava, kada se se prekid dogodi u toku instrukcije izvršenja i deljenja.

Ekvivalentni pseudokod rx ← PC PC ← 0x00000008 MSR[UMS] ← MSR[UM], MSR[UM] ← 0,

Page 49: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

53 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

MSR[VMS] ← MSR[VM], MSR[VM] ← 0

Instrukcija keš

Pregled

Microblaze se mogu koristiti sa opcionalnim keš instrukcijama radi poboljšanja performansi, kada se kodovi izvršavaju i nalaze izvan LMB adresnog opsega. Keš instrukcije imaju sledeće karakteristike:

• Direktno mapiranje • Korisnički podesiva keš memorija u opsegu adresa • Konfigurišući keš i oznaka veličine • Zadržavanje u glavnoj memoriji preko keš link interfejsa • Opcije koje koriste 4 ili 8 reči keš linije • Uključen keš i isključena kontrola potrebnog bita u MSR • Opciona WIC instrukcija poništava linijsku keš

instrukciju

Opšta funkcionalnost keš instrukcije

Kada se koristi keš instrukcija prostor memorijske adrese je podeljen u dva segmenta:

- Brzo memorijski segment - Spori memorijski segment

Brzo memorijski segment je određen pomoću dva parametra: C_ICACHE_BASEADDR i C_ICACHE_HIGHADDR. Sve adrese unutar ovog opsega odgovaraju brzo memorijskom segment. Ostale adrese su u sporom memorijskom segmentu.

Adresa instrukcije brzo memorijskog segmenta je podeljena u dva dela: adresa keša i adresa znaka. Instrukcija keš u microblazu može biti određena od 64 bit-a pa sve do 64 kB. Ovo se odnosi na adresu keša između 6 i 16 bita. Oznake keša zajedno se keš adresom trebalo bi se slagati sa celokupnom adresom brze memorije. Kada je iskorišćena veličina keša manja od 2 kB, distribuiran RAM je upotrebljen za implementaciju oznake i instrukcije RAM-a. Prikaz organizacije instrukcionog keša dat je na slici 17.

Page 50: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

54

Slika 17. Organizacija instrukcijskog keša

Operacije instrukcijskog keša

Za svaku instrukciju izvršenja, keš instrukcija se detektuje ako instrukcija adrese pripada brzomemorijskom segmentu. Ako je adresa sporomemorijska, keš kontroler ingoriše instrukcije i omogućava PLB, OPB ili LMB da kompletira zahtev. Na propušten keš, keš kontroler zahteva novu instrukciju preko interfejsa keš linka (IXCL), i čeka memorijski kontroler za povratak na pripadajući keš link.

Softverska podrška keš instrukcije

MSR bit

ICE bit u MSR obezbeđuje je softversku kontrolu uključivanja i isključivanja keša. Sadržaj keša je po default-u kada je keš isključen. Može se neosnovano, keš linija koristiti kao WIC instrukcija ili kao hardverski logički prekid u microblaze-u.

WIC instrukcija

Opcija WIC instrukcije (C_ALLOW_ICACHE_WR=1) sadrži neosnovanu keš liniju pri upravljanju keša kod aplikacija. Keš mora biti isključen (MSR[ICE]=0) kada se instrukcija izvršava.

Page 51: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

55 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Keš podaci

Opis

Mikroblaze se može koristiti sa opcionim podacima keša za poboljšanje perfomanse. Opseg keš memorije ne sme biti u opsegu LMB adresa. Podaci keša imaju sledeća obeležja:

• Direktno mapiranje • Upis celom dužinom • Opseg adresa korišćene brze memorije • Konfiguracija veličine keša i veličine znaka • Interfejs keš-link-a (XCL) • Opcije koriste 4 ili 8 reči keš linka • Za pokretanje ili gašenje kontrole upotrebljen je bit u

MSR • Instrukcija WDC poništava podatke keš linije

Opšte funkcije keš podataka

Kada se koristi keš instrukcija prostor memorijske adrese je podeljen u dva segmenta:

- Brzo memorijski segment - Spori memorijski segment

Brzo memorijski segment je određen pomoću dva parametra: C_DCACHE_BASEADDR iI C_DCACHE_HIGHADDR. Sve adrese unutar ovog opsega odgovaraju brzo memorijskom segment. Ostale adrese su u sporom memorijskom segmentu.

Adresa instrukcije brzo memorijskog segmenta je podeljena u dva dela: adresa keša i adresa znaka. Instrukcija keš u microblazu može biti određena od 64 bit-a pa sve do 64 kB. Ovo se odnosi na adresu keša između 6 i 16 bita. Oznake keša zajedno se keš adresom trebalo bi se slagati sa celokupnom adresom brze memorije. Kada je iskorišćena veličina keša manja od 2 kB, distribuiran RAM je upotrebljen za implementaciju oznake i instrukcije RAM-a. Prikaz organizacije podacionog keša dat je na slici 18.

Page 52: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

56

Slika 18. Organizacija podacionog keša

Operacije podacionog keša

Microblaze, podacioni keš implementira protokolom upis po celom. Pod uslovom da je keš aktivan i memorisan u opsegu brzih memorija, generiše se odgovarajući bit, polureč i reč i vrši se upis podataka pomoću keš linka u spoljnu memoriju. Ako je odredišna adresa reč, onda se vrši upis i ažuriranje keš podataka.

Softverska podrška podacionog keša

MSR bit DCE bit u MSR kontroliše da li je ili ne keš aktivan. Kada je keš neaktivan, korisnik mora da se osigura da su sva prethodna upisivanja unutar opsega brzih memorija kompletirana u spoljnoj memoriji pre čitanja PLB ili OPB.

WDC instrukcija

Opcija WIC instrukcije (C_ALLOW_DCACHE_WR=1) sadrži neosnovanu keš liniju pri upravljanju keša kod aplikacija.

Page 53: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

57 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Jedinica sa pokretnom zapetom (FPU)

Pregled

Microblaze jedinica sa pokretnom zapetom, bazirana je na 754 IEEE standardu:

• Korišćenje IEEE 754 formata jedinstvene preciznosti sa pokretnom zapetom, uključujući i neodređene definicije i nulu.

• Podržava instrukcije sabiranja, oduzimanja, množenja, deljenja, poređenja, konverzije i kvadratni koren.

• Implementira mod najbliže celine • Generiše status bit za potkoračenje, prekoračenje i pogrešne

operacije. Za poboljšanje performansi izrađeni su sledeći pojednostavljeni nestandardi:

• Denormalizacija operanada nije podržana. • Denormalizovan rezultat se pamti kao 0 sa malim skupom

vrednosti bitova u FSR. • Operacija NaN vraćena je na fiksni NaN: 0xFFC00000 je jedan

od tih NaN operanada. • Potkoračenje je rezultat ubacivanje znaka ∞ u jedinici sa

pokretnom zapetom, čak i kada postoji izuzetak.

Format

Po IEEE 754 jednostrukoj preciznosti jedinice sa pokretnom zapetom, broj se sastoji od sledeća tri polja:

1. 1 bit za znak 2. 8 bita zauzima eksponent 3. 23 bita ima udela mantisa Način na koji su raspoređena ova polja u 32. Bitnoj reči prikazani su na sledećoj slici.

Page 54: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

58

Slika 19. IEEE format jednostruke preciznosti

Operacije

Za sve microblaze FPU operacije koriste se procesori sa registrima opšte namene, a ređe registri koji koriste jedinicu sa pokretnom zapetom.

Aritmetičke operacije

FPU implementira sledeće operacije sa pokretnom zapetom:

• Sabiiranje, fadd • Oduzimanje, fsub • Množenje, fmul • Deljenje, fdiv • Kvadratni koren, fsqrt

Poređenje

FPU implementira sledeća poređenja pomoću pokretne zapete:

• Manje, fcmp.lt • Manje ili jednako, fcmp.le • Jednako, fcmp.eq • Više, fcmp.gt • Više ili jednako, fcmp.ge • Nejednakost, fcmp.ne • Nedefinisanost, fcmp.un

Konverzija

FPU podržava sledeće konverzije:

• Konverzija tipa INTEGER u tip sa pokretnom zapetom • Konverzija tipa sa pokretnom zapetom u tip INTEGER

Izuzeci

Jedinica sa pokretnom zapetom koristi mehaničke regularne izuzetke u microblaze-u. Kada je to omogućeno i izuzeci se podvrgavaju uslovima IEEE standardima: potkoračenje, prekoračenje, deljenje nulom itd.

Page 55: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 1 Arhitektura MicroBlaze procesora

59 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Otklanjanje grešaka i kopiranje

Otklanjanje grešaka

MicroBlaze sadrži interfejs za ispravljanje grešaka koji je zasnovan na alatima za softversko ispravljanje grešaka, kao i svaki alat Xiling procesora (XMD). Interfejs za ispravljanje grešaka je dizajniran da bude povezan sa jezgrom modula za ispravljanje grešaka Xilinx mikroprocesora, koji je interfejsom pomoću JTAG porta povezan sa FPGA čipovima u Xilinx-u. Ispravljanje grešaka zahtevaju opcije kao:

• Podesivi broj hardverskih pauza i nedefinisane softverske

pauze • Spoljne kontrole procesora koje dozvoljavaju otklanjanje

grešaka alatima stop, reset u jednom koraku microblaze • Čitanje iz i upis u: memoriju, registre opšte namene i

specijalne registre opšte namene izuzev EAR, EDR, ESR, BTR i PVR – PVR11

• Podržavanje više procesora • Upis instrukcija i keš podataka

Kopiranje

Microblaze interfejs kopiranja prikazuje broj internih oblika signala za prikaz i analizu. Xilinx preporučuje korisnicima da interfejs kopiranja koriste onaj koji je napravljen analizom jezgra Xilinx-a. Ovaj interfejs nije zagarantovan da bude kompatibilan sa budućim izdanjima microblaze-a.

Page 56: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

60

Page 57: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

61 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Korak 2

Opis signalnog interfejsa Microblaze-a Ovo poglavlje opisuje vrste signalnog interfejsa koje se mogu koristit zas spajanje microblaze-a. Ovaj orak sadži sledeće delove:

• Pregled • Opis Microblaze I/O • Opis interfejsa lokalnog memorijskog BUS-a (LMB) • Opis Fast Simlex Link (FSL) interfejsa • Opis Xilinx Cache Link (XCL) interfejsa • Opis interfejsa za otkalanjanje grrešaka • Opis interfejsa za kopiranje • Microblaze jezgro, konfiguracija

Pregled

Microblaze jezgro je organizovano po Harvarad arhitekturi sa posebnim jedinicima bus interfejsa za pristup podacima i instrukcijama. Sledeća tri memorijsa interfejsa su podržana: lokalnim memorijskim busom (LMB), lokalni bus IBM procesora (PLB) ili IBM, on-chip periferijski bus (OPB) i Xilinx Cache Link (XCL). LMB obezbeđuje pristup jednostranom ciklusu uključujući dupli port RAM-a. PLB ili OPB obezbeđuje sa i on-chip i off-chip vezu periferije i memorije. Cache Link interfejs je namenjen za korišćenje spoljnim kontrolera memorije.

Page 58: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

62

Opcije

Microblaze može biti konfigurisan sa sledećim interfejsima:

32. Bitna verzija PLB V4.6 interfejs 32. Bitna verzija OPB V2.0 bus interfejs LMB pruža jednostavan sinhroni protokol za efikasno

blokiranje RAM prenosa FSL omogućava brzi tok mehanizma komunikacije XCL omogućuje brzi slave-side tok interfejssa između

keša i spoljne kontrolne memorije Interfejs otklanjanja grešaka za korišćenje sa

mikroprocesora

Page 59: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

63 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Pregled Microblaze I/O

Jezgro interfejsa prikazano je na sledećoj slici, a u tabeli 20 definisani su sledeći koraci: DPLB: interfejs podataka, Procesor LocalBus DOPB: interfejs podataka, On-chip Peripheral Bus DLMB: interfejs podataka, Local Memory Bus (BRAM only) IPLB: instrukcioni interfejs, On-chip Peripheral Bus IOPB: instrukcioni interfejs, On-chip Peripheral Bus ILMB: instrukcioni interfejs, Local Memory Bus (BRAM only) MFSL: 0...15: FSL master interface DWFSL: 0...15: FSL master direct conection interfaces SFSL: 0...15: FSL slave interface DRFSL: 0...15: FSL slave direct connection interfaces IXCL: instrukciona ivica Xilinx Cache Link interfejsa (FSL master/slave pair) DXCL: podaciona ivica Xilinx Cache Link interfejsa (FSL master/slave pair) Jezgro: različiti signali za : clock, reset, debug i trace

Slika 20. Blok dijagram Microblaze jezgra

Page 60: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

64

Tabela 20. Kratak pregled jezgra Microblaze I/O

Page 61: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

65 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 20. Kratak pregled jezgra Microblaze I/O

Page 62: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

66

Tabela 20. Kratak pregled jezgra Microblaze I/O

Page 63: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

67 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 64: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

68

Tabela 20. Kratak pregled jezgra Microblaze I/O

Page 65: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

69 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 20. Kratak pregled jezgra Microblaze I/O

Opis interfejsa Procesor Local Bus (PLB)

Microblaze PLB interfejsi su implementirali bit-enable omogućujući 32-bitni masters. Za detaljnije informacije pogledati dokument PLBV46 Interconnect and Interfaces.

Opis interfejsa On-Chip Peripheral Bus (OPB)

Microblaze PLB interfejsi su implementirali bit-enable omogućujući masters. Za detaljnije informacije pogledati dokument OPB Usage in Xilinx FPGA.

Opis interfejsa Local Memory Bus (LMB)

LMB je sinhronizovani bus koji se koristi prvenstveno za pristup on-chip bloku RAM-a. Koristi minimalni broj kontrolnih signala i jednostavan protokol koji omogućuje pristup RAM-u u jednom taknom

Page 66: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

70

ciklusu. LMB signali su definisani i prikazani u sledećoj tabeli. Svi LMB signali su na visokom aktivnom potencijalu.

Interfejs LMB signala Tabela 21. LMB bus signali

Addr[0:31]

Adresni bus je izlaz iz jezgra i označava memorijsku adresu kojoj se pristupa prilikom transfera. I važeći je samo ako je AS na visokom potencijalu. U višesatnom pristupu (pristupi koji zahtevaju više sata za njihovo izvršenje) Addr[0:31] je ispravno ako je prvi takt ciklusa prošao.

Byte_Enable[0:3]

Bit-enable signali izlaze iz jezgra i ukazuju na to koja linija bajta podacionog bus-a sadrži ispravni podatak. I važeći je samo ako je AS na visokom potencijalu. U višesatnom pristupu (pristupi koji zahtevaju više sata za njihovo izvršenje) Byte_Enable[0:3] je ispravno ako je prvi takt ciklusa prošao. Prave vrednosti Byte_Enable[0:3] prikazane su u sledećoj tabeli:

Page 67: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

71 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 21. Ispravne vrednosti za Byte_Enable[0:3]

Data_Write[0:31]

Ovaj bus izlazi iz jezgra i sadrži podatke koji se unose u memoriju. Važi kad je AS na visokom potencijalu, i prestaje da važi kad takt posle čitanja postane jedinica.

AS

Adresni impuls izlazi iz jezgra i označava početak prenosa, adresnu magistralu i bit-enable. Na visokom potencijalu je samo dok dođe do promene prvog takta, zatim postaje nula i ostaje sve dok ne dođe novi prenos.

Read_Strobe

Ovaj signal, takođe, izlazi iz jezgra i označava da je čitanje prenosa u toku. Na visokom potencijalu je u prvom taktu prenosa i ostaje na tom potencijalu nakon ciklusa čitanja. Ako je počelo novo čitanje u toku takta READY je na jedinici, dok i RAED-STROBEostaje na visokom potencijalu.

Write_Strobe

Page 68: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

72

Write_Strobe izlazi iz jezgra i označava da je operacija upisa u toku. Ovaj signal je na jedinici u prvom taktnom intevalu i ostaje na jedinici nakon čitanja. Novi upis počinje taktom kada je RAEDY jedinica i Write_Strobe postane jedinica.

Data_Read[0:31]

Magistrala čitanja podataka je u jezgru i sadrži podatke koji se čitaju iz memorije. Data_Read je aktivno na rastućoj ivici takta kada je READY na visokom potencijalu.

Ready

Ready je signal u jezgru koji označava kompletan trenutni i sledeći prenos koji može početi u sledećem taktu. On je uzorkovan na rastuću ivicu takta.

Clk

Sve operacije LMB su sinhroniizovane taktom jezgra Microblaze-a.

LMB izvršavanja

Sledeći dijagram prikazuje primere operacija LMB magistrale.

Opšte operacije upisa

Slika 21. Opšte operacije LMB upisa

Page 69: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

73 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Opšte operacije čitanja

Slika 22. Opšte operacije LMB čitanja

Operacija upisa back-to-back

Slika 23. Opšte operacije LMB upisa back-to-back

Operacija čitanja back-to-back jednog ciklusa

Page 70: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

74

Slika 24. Opšte operacije LMB čitanja back-to-back jednog ciklusa Kombinovana opoeracija READ/WRITE tipa back-to-back

Slika 25. Opšte operacije LMB kombinacije upis/čitanje tipa back-to-back

Čitanje i upis podataka

Interfejs magistrale podataka obavlja čitanje i upis podaržavajući sledeće korake:

o Bajt, polureč i reč o Bajt, polureč o Bajt

Opis interfejsa Fast Simplex Link (FSL)

Page 71: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

75 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Magistrala Fast Simplex Link (FSL) omogućava komunikacioni put tipa tačka po tačka između izlaznog FIFO i ulaznog FIFO. Za više informacija pogledati dokument Fast Simplex Link (FSL).

Interfejs signala master FSL

Microblaze sadrži najviše 16 master interfejsa, koji su navedeni u sledećoj tabeli:

Tabela 22. Master FSL signali

Interfejs signala slave FSL

Microblaze može podržati najviše 16 slave signala od kojih su neki prikazani sledećo, tabelom:

Tabela 23. Slave FSL signali

Page 72: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

76

FSL prenosi

Operacija upisa FSL magistrale

Za upis u FSL magistralu dato je microblaze-u da koristi jednu od preporučenih instrukcija. Operacija upisa prenosi sadržaj registra na izlaz FSL magistrale. Prenos se kompletira u jednom taktu.

Operacija čitanja FSL magistrale

Čitanje iz FSL magistrale izvršava microblaze korišćenjem nekih od preporučenih instrukcija. Operacijom čitanja prenosi se sadržaj u registar opšte namene. Ove promene potpuno su kompletne završavanjem drugog takta.

Page 73: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 2 Opis signalnog interfejsa MicroBlaze procesora

77 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Opis interfejsa Xilinx CacheLink (XCL)

Xilinx Cache Link (XCL) je dobro rešenje za pristup spoljnoj memoriji. Ovaj link je dizajniran za direktno spajanje memorijskog kontrolera sa integrisanom FSL magistralom, takođe, ima najmanju latenciju i minimalan broj inicijacija.

Page 74: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

78

Slika 26. Konekcija Cach Link-a sa integrisanom FSL magistralom

Interfejs je dosstupan samo Microblaze-u kada je keš aktivan. Ispravno je koristiti Cache Link kao instrukciju keša.

Konfiguracija jezgra Microblaze-a

Jezgro Microblaze-a je razvijeno za podršku zahtevnih korisničkih konfiguracija. To omogućava procesoru da za nižu cenu ispuni različiti korisničke zahteve. Konfiguracija zavisi od parametara koji se uključuju, obično je to veličina ili određena procesorska funkcija. Na primer, instrukcija keša, omogućuje podešavanje pomoću parametra C_USE_ICACHE. Veličina instrukcije i opseg memorije, konfigurisani su korišćenjem C_CACHE_BYTE_SIZE, C_ICACHE_BASEADDR, and C_ICACHE_HIGHADDR respektivno.

Page 75: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

79 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Korak 3

MicroBlaze aplikacije binarnog interfejsa

Ovo poglavlje opisuje aplikacioni binarni interfejs microblaze-a, koji je važan za razvoj softvera za asemblerski jezik. U ovom poglavlju opisuju se neke od konvencija kompajlera. Bilo koji kod upisan na asemblerskom jeziku, mora slediti konvencije kompatibilne sa kodom koji je generisan od strane ovog jezika.

Ovaj korak sadrži sledeće delove:

• Tipove podataka • Registar metoda konvencija • Magacin konvencija • Model memorije • Obrada prekida i izuzetaka

Page 76: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

80

Tipovi podataka

Tipovi podataka koje koristi microblaze kao asemblerske programe, prikazani su u tabeli 24. Tipovi podataka kao što su data8, data 16, data32 koriste se umesto uobičajenog baj, polureč i reč.

Tabela 24. Tipovi podataka

Konvencija magacina

Konvencije steka koje koristi Microblaze opisane su u tabeli 25. Okvirena polja u tabeli 25 označavaju deo magacina koji poziva funkciju, dok neuokvirena polja tabele označavaju poziv konture funkcije. ABI konvencije konture magacina definišu protokol za prelazne parametre, očuvanje neaktivnih vrednosti registra i raspodelu prostora za smeštanje nepoznatih vrednosti u funkciji. Funkcije koje sadrže pozive ostalih potprograma su pozivi sa nerazgranatim funkcijama. Ove nerazgranate funkcije kreiraju nova polja magacina za svoje potrebe kada pokazivač ima maksimalnu vrednost. Kad ovaj program krene da se izvršava pokazivač ima maksimalnu vrednost.

Page 77: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 3 MicroBlaze aplikacije binarnog interfejsa

81 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 25. Konvencije magacina

Razmotrimo jedan primer gde func1 poziva func2, a sve skupa pozivaju func3. Nakon poziva func1 i func2 vrednost pointera se dekrementira. Ova vrednost stek pointera se opet dekrementira kada se vrši podešavanje func 3. Na povratku iz func3 vrednos pointera dobija svoju originalnu vrednost. Detalji o tome kako magacin radi prikazani su na sledećoj slici:

Slika 27. Okvir magacina

Page 78: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

82

Model memorije

Memorijski model Microblaze-a klasifikuje podatke u četiri različita dela: polje kratkih podataka, polje podataka, polje zajedničkeneinicijalizacije i slova ili konstante.

Polje kratkih podataka

Globalne promenljive malih veličina memorišu se u ovim poljima. Prag o veličini promenljive koja se može memorisati u ovim poljima postavljen je na 8 bajtova u Microblaze kompajleru, ali to se može promeniti dajući komandnoj liniji mogućnost prevođenja. 64 kilobajta memorije je potrebno za ova polja.

Polje podataka

Relativno velike promenljive se smeštaju u ovakvim poljima, u kojima se ,ože pristupiti pissanjem ili čitanjem ili pomoću apsolutnih adresa u zavisnosti od opcija komandne linije kompajlera.

Slova i konstante

Konstantre su smeštene u poljima kratkih podataka i mogu samo da se čitaju ili mogu koristiti pristup samo čitanja R2. Kompajler generiše odgovarajuće indikatore kao osnovne indikatore

Page 79: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 3 MicroBlaze aplikacije binarnog interfejsa

83 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Obrada prekida i izuzetaka

Microblaze preporučuje određenu lokaciju i adresu za obradu prekida i izuzetaka. Kodovi su pisani za odgovarajuću obradu. Obrada prekida i izuzetaka prikazana je u sledećoj tabeli.

Tabela 26. Obrada prekida i izuzetaka

Kodovi pokreću određene lokacije kao što će u nastavku biti objašnjeno. Za programsko prevođenje i pored opcije kompajlera -xl-mode-xmdstub, crt0.o inicijalizira podatke koje donosi prevodilac mb-gcc za povezivanje mb-ld linkera. Ovaj program se mora pokrenuti sa xmdstub, već učitane adrese u memoriji na lokaciji 0x0. Microblaze vrši obradu prekida i izuzetaka obično sa bilo kojoj lokaciji dužine 32 bita. Korisnički kod za obradu izuzetaka počinje oznakom _label _exception_handler, hardverske obrade počinju _hw_exception_handler, dok obrada prekida počinje oznakom _label _interrupt_handler.

Page 80: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

84 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Korak 4

Skup instrukcija arhitekture MicroBlaze-a

Ovaj korak daje detaljan pregled skupa instrukcija arhitekture Microblaze-a i sadrži sledeće delove:

• Notacija • Format • Instrukcije

Notacija

Simboli koji se koriste u ovom odeljku predstavljeni su u tabeli 27. Tabela 27. Simboli

Page 81: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

85 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Tabela 27. Simboli

Format

Microblaze koristi dva tipa formata za instrukcije: tip A i tip B

Tip A

Tip A se koristi za instrukcije registar-registar. Sadrži opkod, jedno odredište i dva izvorna registra.

Page 82: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

86

Tip B

Tip B se koristi za instrukcije registar-direktno. Sadrži opkod, jednu destinaciju, jedan izvorni registar i neposrednu 16-bitnu vrednost.

Instrukcije

Ovaj deo sadrži kratak opis Microblaze instrukcija. Instrukcije su poređane po abecednom redosledu. Za lakšu obradu Xilinx sadrži mnemonik, opis instrukcije, pseudokod i listu registarskih skraćenica.

add Arithmetic Add add rD, rA, rB Add addc rD, rA, rB with Carry addk rD, rA, rB and Keep Carry addkc rD, rA, rB with Carry and Keep Carry

Opis

Zbir registra sadržaja rA i rB upisuje se u registar rD. Kada je setovan bit 3 (na slici označen sa K), koristi se mnemonički kod addk, kada je setovan bit 4 (na slici C) koristi se addc, a kad su setovan oba ova bita koristi se addkc.

Pseudokod

if C = 0 then (rD) ← (rA) + (rB)

else (rD) ← (rA) + (rB) + MSR[C]

Page 83: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

87 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

if K = 0 then MSR[C] ← CarryOut

Registarska oznaka

• rD • MSR[C]

Kašnjenje

1 ciklus

Addi Arithmetic Add Immediate addi rD, rA, IMM Add Immediate addic rD, rA, IMM Add Immediate with Carry addik rD, rA, IMM Add Immediate and Keep Carry addikc rD, rA, IMM Add Immediate with Carry and Keep Carry

Opis

Zbir sadržaja registra rA i polje sa neposrednim vrednostim, dužine 32 bita, smešta se u registar rD. Kada je setovan bit 3 (na slici označen sa K), koristi se mnemonički kod addik, kada je setovan bit 4 (na slici C) koristi se addic, a kad su setovan oba ova bita koristi se addikc.

Pseudokod

if C = 0 then (rD) ← (rA) + sext(IMM) else (rD) ← (rA) + sext(IMM) + MSR[C] if K = 0 then MSR[C] ← CarryOut

Registarska oznaka

• rD • MSR[C]

Page 84: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

88

Kašnjenje

1 ciklus

And Logical AND And rD, rA, rB

Opis

U registar rD upisuje se sadržaj koji zadovoljava AND logičku operaciju između registra rA i rB.

Pseudokod

(rD) ← (rA) � (rB)

Registaska oznaka

• rD Kašnjenje

1 ciklus

Andi Logial AND with Immediate And rD, rA, IMM

Opis

U registar rD upisuje se sadržaj koji zadovoljava AND logičku operaciju između registra rA i neposrednog asadržaja registra IMM dužine 32 bita.

Pseudokod

(rD) ← (rA) � sext (IMM)

Registaska oznaka • rD

Page 85: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

89 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Kašnjenje 1 ciklus

Andn

Logial AND not And rD, rA, rB

Opis

U registar rD upisuje se sadržaj koji zadovoljava AND logičku operaciju između registra rA i komplementirane vrednosti registra rB

Pseudokod

(rD) ← (rA) � ( ) Registaska oznaka

• rD Kašnjenje

1 ciklus

Andni Logial AND NOT with Immediate And rD, rA, IMM

Opis

Polje IMM je ekstenzije 32 bita. U registar rD upisuje se sadržaj registra rA i komplementirana vrednost polja IMM.

Pseudokod

(rD) ← (rA) � ( ) Registaska oznaka

Page 86: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

90

• rD Kašnjenje

1 ciklus

Beq

Branch if Equal beq rA, rB Branch if Equal beqd rA, rB Branch if Equal with Delay

Opis

Ako je rA jednako 0, instrukcija locira ofset vrednosti rB. Cilj je da se Branch nađe na krajnoj adresi PC + rB(ofset vrednosti). Beqd je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA = 0 then PC ← PC + rB else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje 1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

Beqi

Branch immediate if Equal beqi rA, IMM Branch immediate if Equal beqid rA, IMM Branch immediate if Equal with Delay

Page 87: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

91 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Opis

Ako je rA jednako 0, instrukcija locira ofset vrednosti IMM. Cilj je da se Branch nađe na krajnoj adresi PC + IMM(ofset neposrednih vrednosti). Beqd je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA = 0 then PC ← PC + sext(IMM) else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje 1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

Bge Branch if Greater or Equal Bge rA, rB Branch if Greater or Equal bged rA, rB Branch if Greater or Equal with Delay

Opis

Ako je rA jednako 0, instrukcija locira ofset vrednosti rB. Cilj je da se Branch nađe na krajnoj adresi PC + rB (ofset vrednosti).

Page 88: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

92

Bged je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA >= 0 then PC ← PC + rB else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje 1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

bgei Branch immediate if Greater or Equal bgei rA, IMM Branch immediate if Greater or Equal bgeid rA, IMM Branch immediate if Greater or Equal with Delay

Opis

Ako je rA jednako 0, instrukcija locira ofset vrednosti IMM. Cilj je da se Branch nađe na krajnoj adresi PC + IMM (ofset neposrednih vrednosti). Bgeid je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA >= 0 then PC ← PC + sext(IMM) else PC ← PC + 4 if D = 1 then

Registaska oznaka

Page 89: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

93 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

• PC Kašnjenje

1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

bgt Branch if Greater Then Bgt rA, rB Branch if Greater Then bgtd rA, rB Branch if Greater Then with Delay

Opis

Ako je rA jednako 0, instrukcija locira ofset vrednosti rB. Cilj je da se Branch nađe na krajnoj adresi PC + rB (ofset vrednosti). Bgtd je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA > 0 then PC ← PC + rB else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje 1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

bgti

Branch if Greater Then

Page 90: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

94

Bgti rA, IMM Branch immediate if Greater Then bgtid rA, IMM Branch immediate if Greater Then with Delay

Opis

Ako je rA jednako 0, instrukcija locira ofset vrednosti IMM. Cilj je da se Branch nađe na krajnoj adresi PC + IMM (ofset neposrednih vrednosti). Bgtid je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA > 0 then PC ← PC + sext(IMM) else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje

1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

ble

Branch if Less or Equal Ble rA, rB Branch if Less or Equal bled rA, rB Branch if Less or Equal with Delay

Opis

Page 91: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

95 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Ako je rA jednako 0, instrukcija locira ofset vrednosti rB. Cilj je da se Branch nađe na krajnoj adresi PC + rB (ofset vrednosti). Ble je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA <= 0 then PC ← PC + rB else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje 1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

blei Branch immediate if Less or Equal blei rA, IMM Branch immediate if Less or Equal bleid rA, IMM Branch immediate if Less or Equal with Delay

Opis

Ako je rA jednako 0, instrukcija locira ofset vrednosti IMM. Cilj je da se Branch nađe na krajnoj adresi PC + IMM (ofset neposrednih vrednosti). Bleid je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA >= 0 then PC ← PC + sext(IMM) else

Page 92: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

96

PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje 1 ciklus (ako Branch nije iskorišćen) 2 ciklusa (ako je Branch iskorišćen i D bit setovan) 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

Bne Branch if Not Equal bne rA, rB Branch if Not Equal bned rA, rB Branch if Not Equal with Delay

Opis

Ako rA nije jednako 0, instrukcija locira ofset vrednosti rB. Cilj je da se Branch nađe na krajnoj adresi PC + rB(ofset vrednosti). Bned je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA 0 then PC ← PC + rB else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje • 1 ciklus (ako Branch nije iskorišćen) • 2 ciklusa (ako je Branch iskorišćen i D bit setovan) • 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

Bnei Branch immediate if Not Equal bnei rA, IMM Branch immediate if Not Equal

Page 93: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

97 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

bneid rA, IMM Branch immediate if Not Equal with Delay

Opis

Ako rA nije jednako 0, instrukcija locira ofset vrednosti IMM. Cilj je da se Branch nađe na krajnoj adresi PC + IMM(ofset neposrednih vrednosti). Bneid je mnemonik koji se koristi kad je setovan bit D. Bit D utvrđuje daa li je bilo kašnjenje Branch slota ili ne. Ako je D bit setovan, to znači kašnjenje slota i sledeća instrukcija Branch može da se izvrši pre krajne instrukcije.

Pseudokod

If rA 0 then PC ← PC + sext(IMM) else PC ← PC + 4 if D = 1 then

Registaska oznaka • PC

Kašnjenje • 1 ciklus (ako Branch nije iskorišćen) • 2 ciklusa (ako je Branch iskorišćen i D bit setovan) • 3 ciklusa (ako je Branch iskorišćen i D bit nije setovan)

brk Break brk rD, rB

Opis

Branch i veze instrukcije nalaze se na adresi rB. Trenutna vrednost biće memorisana u rD. BIP oznaka će biti postavljene u MSR.

Pseudokod

Page 94: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

98

if MSR[UM] == 1 then ESR[EC] ← 00111 else (rD) ← PC PC ← (rB) MSR[BIP] ← 1

Registaska oznaka

• rD • PC • MSR [BIP] • ESR [EC]

Kašnjenje

• 3 ciklusa

brki Break immediate brki rD, IMM

Opis

Branch i veze instrukcije nalaze se na adresi IMM, koje je dužine 32 bita. Trenutna vrednost biće memorisana u rD. BIP oznaka će biti postavljene u MSR. Pseudokod

if MSR[UM] == 1 && IMM != 0x8 && IMM != 0x18 then ESR[EC] ← 00111 else (rD) ← PC PC ← sext(IMM) MSR[BIP] ← 1 if IMM = 0x8 || IMM = 0x18 then MSR[UMS] ← MSR[UM] MSR[VMS] ← MSR[VM] MSR[UM] ← 0 MSR[VM] ← 0

Registaska oznaka

Page 95: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

99 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

• rD • PC • MSR [BIP], MSR [UM], MSR [VM] • ESR [EC]

Kašnjenje

• 3 ciklusa

bs Barrel Shift bsrl rD, rA,rB Barrel Shift Right Logical bsra rD, rA,rB Barrel Shift Right Arithmetical bsll rD, rA,rB Barrel Shift Left Logical

Opis

Sadržaj registra rA pomera za vrednos koja se nalazi u registru rB i rezultat se smešta u registar rD. Mnemonik bsll setuje S bit. Ako je setovan bit S, pomerač pomera sadržaj u levo. Mnemonici bsrl i bsra ne setuju bit S i pomerač tada pomera u desno. Mnemonik bsra setuje bit T. Ako je setovan bit T Barrel shift je aritmetički. Bsrl i bsll brišu bit T i Barrel Shift je logički.

Pseudokod

if S = 1 then (rD) ← (rA) << (rB)[27:31] else if T = 1 then if ((rB)[27:31]) ≠ 0 then (rD)[0:(rB)[27:31]-1] ← (rA)[0] (rD)[(rB)[27:31]:31] ← (rA) >> (rB)[27:31] else (rD) ← (rA) else (rD) ← (rA) >> (rB)[27:31]

Registaska oznaka

Page 96: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

100

• rD

Kašnjenje

• 1 ciklus sa C_AREA_OPTIMIZED=0 • 2 ciklusa sa C_AREA_OPTIMIZED=1

bsi

Barrel Shift Immediate bsrli rD, rA,IMM Barrel Shift Right Logical Immediate bsrai rD, rA,IMM Barrel Shift Right Arithmetical Immediate bslli rD, rA,IMM Barrel Shift Left Logical Immediate

Opis

Sadržaj registra rA pomera za vrednos koja se nalazi u registru IMM i rezultat se smešta u registar rD. Mnemonik bsll setuje S bit. Ako je setovan bit S, pomerač pomera sadržaj u levo. Mnemonici bsrl i bsra ne setuju bit S i pomerač tada pomera u desno. Mnemonik bsra setuje bit T. Ako je setovan bit T Barrel shift je aritmetički. Bsrl i bsll brišu bit T i Barrel Shift je logički.

Pseudokod

if S = 1 then (rD) ← (rA) << IMM else if T = 1 then if IMM ≠ 0 then (rD)[0:IMM-1] ← (rA)[0] (rD)[IMM:31] ← (rA) >> IMM else (rD) ← (rA) else (rD) ← (rA) >> IMM

Registaska oznaka

• rD

Page 97: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

101 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Kašnjenje

• 1 ciklus sa C_AREA_OPTIMIZED=0 • 2 ciklusa sa C_AREA_OPTIMIZED=1

cmp

Integer Compare cmp rD, rA,rB compare rB with rA (signed) cmpu rD, rA,rB compare rB with rA (unsigned)

Opis

Sadržaj registra rA se oduzima od sadržaja registra rB i rezultata se upisuje u registar rD.

Pseudokod

(rD) ← (rB) + (rA) + 1 (rD)(MSB) ← (rA) > (rB)

Registaska oznaka

• rD

Kašnjenje

• 1 ciklus

fadd

Floating Point Arithmetic Add fadd rD, rA,rB add

Page 98: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

102

Opis

Floating Point računa zbir sadržaja registra rA i rB i rezultat smešta u registar rD.

Pseudokod

if isDnz(rA) or isDnz(rB) then (rD) ← 0xFFC00000 FSR[DO] ← 1 ESR[EC] ← 00110 else if isSigNaN(rA) or isSigNaN(rB)or (isPosInfinite(rA) and isNegInfinite(rB)) or (isNegInfinite(rA) and isPosInfinite(rB))) then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else if isQuietNaN(rA) or isQuietNaN(rB) then (rD) ← 0xFFC00000 else if isDnz((rA)+(rB)) then (rD) ← signZero((rA)+(rB)) FSR[UF] ← 1 ESR[EC] ← 00110 else if isNaN((rA)+(rB)) and then (rD) ← signInfinite((rA)+(rB)) FSR[OF] ← 1 ESR[EC] ← 00110 else (rD) ← (rA) + (rB)

Registaska oznaka

• rD • ESR[EC] • FSR[IO,UF,OF,DO]

Kašnjenje

• 4 ciklus sa C_AREA_OPTIMIZED=0 • 6 ciklusa sa C_AREA_OPTIMIZED=1

frsub

Reverse Floating Point Arithmetic Subtraction frsub rD, rA,rB Reverse Subtraction

Page 99: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

103 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Opis

Reverse Floating Point sadržaj registra rA oduzima od sadržaja registra rB i rezultat smešta u registar rD.

Pseudokod

if isDnz(rA) or isDnz(rB) then (rD) ← 0xFFC00000 FSR[DO] ← 1 ESR[EC] ← 00110 else if isSigNaN(rA) or isSigNaN(rB)or (isPosInfinite(rA) and isNegInfinite(rB)) or (isNegInfinite(rA) and isPosInfinite(rB))) then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else if isQuietNaN(rA) or isQuietNaN(rB) then (rD) ← 0xFFC00000 else if isDnz((rA)-(rB)) then (rD) ← signZero((rA)-(rB)) FSR[UF] ← 1 ESR[EC] ← 00110 else if isNaN((rA)+(rB)) and then (rD) ← signInfinite((rA)+(rB)) FSR[OF] ← 1 ESR[EC] ← 00110 else (rD) ← (rA) - (rB)

Registaska oznaka

• rD • ESR[EC] • FSR[IO,UF,OF,DO]

Kašnjenje

• 4 ciklus sa C_AREA_OPTIMIZED=0 • 6 ciklusa sa C_AREA_OPTIMIZED=1

Page 100: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

104

fmul Floating Point Arithmetic Multiplication fmul rD, rA,rB Multiply

Opis

Floating Point Arithmetic Multiplication množi sadržaj registra rA sa sadržajem registra rB i rezultat smešta u registar rD.

Pseudokod

if isDnz(rA) or isDnz(rB) then (rD) ← 0xFFC00000 FSR[DO] ← 1 ESR[EC] ← 00110 else if isSigNaN(rA) or isSigNaN(rB)or (isPosInfinite(rA) and isNegInfinite(rB)) or (isNegInfinite(rA) and isPosInfinite(rB))) then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else if isQuietNaN(rA) or isQuietNaN(rB) then (rD) ← 0xFFC00000 else if isDnz((rA)*(rB)) then (rD) ← signZero((rA)-(rB)) FSR[UF] ← 1 ESR[EC] ← 00110 else if isNaN((rA)*(rB)) and then (rD) ← signInfinite((rA)+(rB)) FSR[OF] ← 1 ESR[EC] ← 00110 else (rD) ← (rA) * (rB)

Registaska oznaka

• rD • ESR[EC] • FSR[IO,UF,OF,DO]

Kašnjenje

• 4 ciklus sa C_AREA_OPTIMIZED=0 • 6 ciklusa sa C_AREA_OPTIMIZED=1

Page 101: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

105 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

fdiv

Floating Point Arithmetic Division fdiv rD, rA,rB Divide

Opis

Floating Point Arithmetic Division deli sadržaj registra rB sa sadržajem registra rA i rezultat smešta u registar rD.

Pseudokod

if isDnz(rA) or isDnz(rB) then (rD) ← 0xFFC00000 FSR[DO] ← 1 ESR[EC] ← 00110 else if isSigNaN(rA) or isSigNaN(rB)or (isPosInfinite(rA) and isNegInfinite(rB)) or (isNegInfinite(rA) and isPosInfinite(rB))) then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else if isQuietNaN(rA) or isQuietNaN(rB) then (rD) ← 0xFFC00000 else if isDnz((rA)/(rB)) then (rD) ← signZero((rA)-(rB)) FSR[UF] ← 1 ESR[EC] ← 00110 else if isNaN((rA)/(rB)) and then (rD) ← signInfinite((rA)+(rB)) FSR[OF] ← 1 ESR[EC] ← 00110 else (rD) ← (rA) / (rB)

Page 102: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

106

Registaska oznaka

• rD • ESR[EC] • FSR[IO,UF,OF,DO]

Kašnjenje

• 28 ciklus sa C_AREA_OPTIMIZED=0 • 30 ciklusa sa C_AREA_OPTIMIZED=1

fcmp Floating Point Arithmetic Division Fcmp.un rD, rA,rB Unordered floating point comparison Fcmp.lt rD, rA,rB Less-than floating point comparison Fcmp.eq rD, rA,rB Equal floating point comparison Fcmp.le rD, rA,rB Less-or-Equal floating point comparison Fcmp.gt rD, rA,rB Greater-than floating point comparison Fcmp.ne rD, rA,rB Not-Equal floating point comparison Fcmp.ge rD, rA,rB Greater-or-Equal floating point comparison

Opis

Vrednost registra rB se poredi sa sadržajem registra rA i rezultat poređenja se smešta u registar rD. Poljem OpSel se određuje vrsta poređenja.

Pseudokod

if isDnz(rA) or isDnz(rB) then (rD) ← 0 FSR[DO] ← 1 ESR[EC] ← 00110 else

Registaska oznaka

• rD • ESR[EC] • FSR[IO,UF,OF,DO]

Page 103: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

107 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Kašnjenje

• 1 ciklus sa C_AREA_OPTIMIZED=0 • 3ciklusa sa C_AREA_OPTIMIZED=1

Tabelom 28 prikazane su operacije poređenja:

Tabela 28. Operacije poređenja

flt Floating Point Convert Integer to Float

flt rD, rA

Opis

Page 104: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

108

Vrši se konverzija integer vrednosti koja se nalazi u registar rA u vrednost sa pokretnom zapetom, pa se nakon toga rezultat upisuje u rD. Ovo je 32.bitno zaokruživanje rezultata i dobija se rezultat u 32.bitnoj pokretnoj zapeti.

Pseudokod

(rD) ← float ((rA))

Registaska oznaka

• rD Kašnjenje

• 4 ciklus sa C_AREA_OPTIMIZED=0 • 6 ciklusa sa C_AREA_OPTIMIZED=1

fint Floating Point Convert Float to Integer

fint rD, rA

Opis

Vrši se konverzija vrednosti koja se nalazi u registar rA i u vrednost integer, pa se nakon toga rezultat upisuje u rD. Ovo je 32.bitno zaokruživanje rezultata i dobija se rezultat u 32.bitni integer.

Pseudokod

if isDnz(rA) then (rD) ← 0xFFC00000 FSR[DO] ← 1 ESR[EC] ← 00110 else if isSigNaN(rA) then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else if isQuietNaN(rA) then (rD) ← 0xFFC00000 else if isInf(rA) or (rA) < -231 or (rA) > 231 - 1 then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else (rD) ← int ((rA))

Page 105: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

109 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Registaska oznaka

• rD • ESR[EC] • FSR[IO,UF,OF,DO]

Kašnjenje

• 5 ciklus sa C_AREA_OPTIMIZED=0 • 7ciklusa sa C_AREA_OPTIMIZED=1

fsqrt

Floating Point Arithmetic Square Roote

fsqrt rD, rA

Opis

Traži se koren vrednosti sadržaja registra rA i rezultat se upisuje u rD.

Pseudokod

if isDnz(rA) then (rD) ← 0xFFC00000 FSR[DO] ← 1 ESR[EC] ← 00110 else if isSigNaN(rA) then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else if isQuietNaN(rA) then (rD) ← 0xFFC00000 else if (rA) < 0 then (rD) ← 0xFFC00000 FSR[IO] ← 1 ESR[EC] ← 00110 else if (rA) = -0 then (rD) ← -0 else

Page 106: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

110

(rD) ← sqrt ((rA)) Registaska oznaka

• rD • ESR[EC] • FSR[IO,UF,OF,DO]

Kašnjenje

• 27 ciklusa sa C_AREA_OPTIMIZED=0 • 29 ciklusa sa C_AREA_OPTIMIZED=1

Pored instrukcija koje su u prethodnom izlaganju predstavljene i opisane, Microblaze koristi još neke instrukcije koje će mo u daljem izlaganju samo kratko navesti i dati njihove mnemonike.

Tabela 29. Instrukcije

Page 107: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

111 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 108: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

112

Page 109: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

113 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 110: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

114

Page 111: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

115 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 112: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

116

Page 113: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

117 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 114: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

MicroBlaze procesor

www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)

118

Page 115: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

Korak: 4 Skup instrukcija MicroBlaze procesora

119 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778

Page 116: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

120

Zaključak:

U ovom radu smo se upoznali sa svim relevantnim činiocima, kako po pitanju arhitekture, tako i po pitanju funkcionisanja jednog 32-bitnog MicroBlaze procesora, koji su nam neophodni za njegovo uspešno programiranje. Imajući u vidu nadolazeću popularnost FPGA čipova, kao i činjenicu da je ovde opisani procesor upravo konfigurabilan na ovakvoj strukturi, možemo zaključiti da je projektovanje jednog sistema, čije aplikacije zahtevaju zavidne performanse, kako u pogledu brzine, tako i u pogledu memorije, uveliko olakšano primenom našeg MicroBlaze procesora. U ovom radu smo se pozabavili opisom podataka, registara i tipova instrukcija. Takođe je naveden i format naredbi sa njihovim kraćim opisom, što je smatrano dovoljnim za približavanje ovom proizvodu firme Xilinx. Za sva buduća, detaljnija razmatranja prilikom izrade sopstvenog projekta, obratite se upravo proizvodjaču, na adresi www.Xilinx.com.

Page 117: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

121

Literatura:

(1) SYNPLICITY, FPGA Solutions, INC. Sunnyvale, USA, 2004 (2) CHRIS ADLER, PRODUCT MARKETING ENGINEER, AND JAN

TAI,TECHNICAL MARKETING ENGINEER, Nios II: An Extremely Versatile Processor, Sunnyvale, USA, 2004

(3) WOLF W., Modern VLSI design, Prentice Hall, New Jersey, 1998 (4) M. K. STOJČEV, B. D. PETROVIĆ, Arhitektura i programiranje

mikroračunarskih sistema zasnovanih na familiji procesora 80x86, Niš, 1999

Page 118: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

122

Biografija: Igor D. Nikolić Rataje, Opština Vranje Telefon: +381 (17) 59 049 +381 (18) 281 762 +381 (64) 18 61 641 e-mail: [email protected]  LIČNI PODACI: OBRAZOVANJE: RADNO ISKUSTVO: RAD NA RAČUNARU: JEZICI: OSTALE VEŠTINE: LIČNE OSOBINE:   

 Rođen u Vranju 1. avgusta 1980. godine. Državljanstvo Srpsko. Gimnazija „Bora Stanković“, prirodno-matematički smer, stečeno 1999. godine u Vranju. Apsolvent na Elektronskom fakultetu u Nišu na smeru Elektronika.

Na poslovima hobi elektronike, elektroinstalacija, održavanja računara, auto-dijagnostike, auto-elektrike, mehanike vozila. Microsoft Windows okruženje, Linux okruženje, Microsoft Office, Photoshop, CorelDRAW, Eagle, Protel, OrCad, VHDL.

Srpski, Engleski, Ruski, Makedonski.

Odlično vladanje matematikom i fizikom i sposobnost prepoznavanja električnih problema i svođenja pod njihove zakonitosti.

Pošten, uporan, vredan, temeljan, precizan, ambiciozan. Vešt u komunikaciji sa ljudima, predusretljiv i sposoban za timski rad.  

Page 119: MicroBlazees.elfak.ni.ac.rs/Papers/INikolic - Microblaze procesor.pdf · 2013-12-06 · Protočna struktura ... Jedinica sa pokretnom zapetom (FPU) ... Specijalni namenski registri

123