Post on 05-Jan-2020
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)
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
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
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
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.
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
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
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
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.
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
14
Tabela 4. Nomenklatura instrukcija microblaze procesora
Korak: 1 Arhitektura MicroBlaze procesora
15 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
16
Tabela 5. Rezime instrukcija microblaze procesora
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)
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
18
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)
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)
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)
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)
Korak: 1 Arhitektura MicroBlaze procesora
23 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
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)
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
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)
Korak: 1 Arhitektura MicroBlaze procesora
27 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
Tabela 8. MSR
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
28
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)
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
30
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
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
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)
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
34
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)
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
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
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.
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
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
40
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
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
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
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.
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.
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
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
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
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.
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
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
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,
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.
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.
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.
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.
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.
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.
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.
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
60
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.
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
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
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
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
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
Korak: 2 Opis signalnog interfejsa MicroBlaze procesora
67 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
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
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
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:
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
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
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
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)
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
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.
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.
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.
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
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.
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
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
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.
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
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.
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]
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]
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
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
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
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).
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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]
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
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))
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
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
Korak: 4 Skup instrukcija MicroBlaze procesora
111 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
112
Korak: 4 Skup instrukcija MicroBlaze procesora
113 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
114
Korak: 4 Skup instrukcija MicroBlaze procesora
115 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
116
Korak: 4 Skup instrukcija MicroBlaze procesora
117 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
MicroBlaze procesor
www.Xilinx.com MicroBlaze Procesor Kratak pregled upravljanja 1-800-255-7778 UG081(V9.0)
118
Korak: 4 Skup instrukcija MicroBlaze procesora
119 MicroBlaze Procesor Kratak pregled upravlja www.Xilinx.com UG081(V9.0) 1-800-255-7778
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.
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
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: igepinter@gmail.com 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.
123