400 likes | 654 Views
UNIVER ZITET U NIŠU ELEKTRONSKI FAKULTET Katedra: elektronika Predmet: Mikroprocesorski sistemi. MICROBLAZE PROCESOR Igor Nikolić br.ind. 10029. MicroBlaze procesor.
E N D
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET Katedra: elektronika Predmet: Mikroprocesorski sistemi MICROBLAZE PROCESORIgor Nikolićbr.ind. 10029
MicroBlaze procesor - Arhitektura MicroBlaze procesora - Opis MicroBlaze signalnog interfejsa - koristi se za konekciju procesora- Upotreba MicroBlaze signalnog interfejsa – opis binarnog interfejsa- Skup instrukcija arhitekture MicroBlaze procesora
Arhitektura MicroBlaze procesora • Pregled • Vrste podataka i Endiannes • Instrukcije • Registri • Arhitektura snabdevanja • Arhitektura memorije • Privilegovane instrukcije • Upravljanje virtualnom memorijom • Reset, prekid, izuzetak i pauza • Keš instrukcije • Keš podaci • Jednostavan interfejs • Pronalaženje i otklanjanje grešaka • FPU
Arhitektura McicroBlaze procesora Pregled Bitne odlike koje procesor podržava su: 32. bitni registar 32. bitna insrukcijska reč sa tri operanda i dva adresna koda 32. bitna adresna magistrala pojedinačno izdavanje naloga Blok dijagram jezgra MicroBlaze
Arhitektura MicroBlaze procesora Klasifikacija podataka i endiannes Tipovi podataka koje MicroBlaze podržava su tipa: - reč - polureč - bajt Tip reč Tip bajt Tip polureč
Arhitektura MicroBlaze procesora Instrukcije Sve instrukcije microblaze procesora su 32. bitne i definisane na jedan od dva načina: tip A (instrukcije koje imaju dva izvorišna registra i jedan odredišni) tip B (instrukcije koje imaju 1 izvorni registar i 16.bitni neposredni operand) Instrukcije su podeljene na:- aritmeticke - logičke - branch - unošenje/memorisanje - specijalne
Arhitektura MicroBlaze procesora Registri - Registri opšte namene (postoje 32.32.bitna registra numerisana sa R0-R1)- Registri specijalne namene ( postoje 18. 32.bitna registra)
Arhitektura MicroBlaze procesora Programski brojač (PC)(32.bitni kod za izvršenje instrukcija) Mašinski registar (MSR)(sadrži kontrolne bitove za procesor) Adresni registar (EAR) Exception Status Registar (ESR) Branch registar (BTR) Registar sa pokretnom tačkom FSR Registar podataka EDR Procesno identifikacioni registar PIB Zona zaštitnog registra ZPR Translation Look-Aside Buffer Low Register (TLBLO) Translation Look-Aside Buffer High Register (TLBHI) Translation Look-Aside Buffer Index Register (TLBX) Registar verzije procesora (PVR) Registri specijalne namene:
Arhitektura MicroBlaze procesora Protočnost je standardna hardverska tehnika koja se kod računara koristi za postizanje boljih performansi. Instrukcije se dele u više koraka i izvršavaju se sekvencijalno. Dobre performanse kod ove strukture postižu se paralelizmom, način na koji se izvršavaju i obrađuju nekoliko instrukcija istovremeno. Protočnu realizaciju instrukcije čine nekoliko stepena. MicroBlaze koristi sledeće stepene : - Trostepeni protočni sistem - Petostepeni protočni sistem Protočna (pipeline) struktura
Arhitektura MicroBlaze procesora Trostepeni protočni sistemKoristeći princip protočnosti, obrada instrukcije se može podeliti na sledeća tri koraka: - pribavljanje, - dekodiranje i - izvršenje instrukcija
Arhitektura MicroBlaze procesora Petostepeni protočni sistemKada je optimizacija nemoguća protočni sistem se deli na pet koraka: - pribavljanje (IF), - dekodiranje (ID), - izvršenje (EX), - pristup memoriji (ME) i - upis rezultata (WB)
Arhitektura MicroBlaze procesora Struktura memorije Svaki adresni prostor je opsega 32 bita i ograničen je do 4G za instrukcije i memorijske podatke. Pristup podacima i instrukcijama se vrši u odvojenim adresnim poljima. 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. 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)
Arhitektura MicroBlaze procesora 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
Arhitektura MicroBlaze procesora Upravljanje virtuelnom memorijom - realni mod - efektivne adrese su upotrebljene za pristup fizičkim adresama. Kada je realni mod uključen, fizičkaadresa je identičnaefektivnojadresii processor koristipristupfizičkimadresama. Nakonreseta, processor radi u realnommodu - virtuelni mod - efektivne adrese su prevedene u fizičke adrese koje upravljaju virtuelnom memorijom procesora. U virtuelnommodu, processor prevodiefektivneadrese u fizičke
Arhitektura MicroBlaze procesora Reset, prekidi, izuzeci i pauze - Reset - Hardverski izuzetak - Ne maskirana pauza - Pauza - Hardverske (spoljne) pauze - Softverske (unutrašnje) pauze - Kašnjenje - Prekidi - Kašnjenje (najveće kašnjenje se dešava, kada se se prekid dogodi u toku instrukcije izvršenja i deljenja). - Koristan vektor
Arhitektura MicroBlaze procesora Instrukcija keš - Pregled 1. Direktno mapiranje 2. Korisnički podesiva keš memorija u opsegu adresa 3. Konfigurišući keš i oznaka veličine 4. Zadržavanje u glavnoj memoriji preko keš link interfejsa 5. Opcije koje koriste 4 ili 8 reči keš linije 6. Uključen keš i isključena kontrola potrebnog bita u MSR 7. Opciona WIC instrukcija poništava linijsku keš instrukciju Opšta funkcionalnost keš instrukcije 1. Brzo memorijski segment (cacheable segment ) 2. Spori memorijski segment (non-cacheable segment ) - Softverska podrška keš instrukcije MSR bit WIC instrukcija
Arhitektura MicroBlaze procesora Kešpodaci - Opis 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 Brzo memorijski segment Spori memorijski segment Operacijepodacionogkeša - Softverskapodrškapodacionogkeša MSR bit WDC instrukcija
Arhitektura MicroBlaze procesora Jedinica sa pokretnom zapetom (FPU) Pregled 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 Format 1 bit za znak 8 bita zauzima eksponent 23 bita ima udela mantisa Operacije Aritmetičkeoperacije Sabiiranje, fadd Oduzimanje, fsub Množenje, fmul Deljenje, fdiv Kvadratnikoren, fsqrt Poređenje Manje, fcmp.lt Manjeilijednako, fcmp.le Jednako, fcmp.eq Više, fcmp.gt Višeilijednako, fcmp.ge Nejednakost, fcmp.ne Nedefinisanost, fcmp.un Konverzija Konverzijatipa INTEGER u tip sapokretnomzapetom Konverzijatipasapokretnomzapetom u tip INTEGER Izuzeci
Arhitektura MicroBlaze procesora Otklanjanjegrešakaikopiranje Otklanjanjegrešaka 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
Opis signalnog interfejsa MicroBlaze 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 grešaka Opis interfejsa za kopiranje Microblaze jezgro, konfiguracija Opis signalnog interfejsa MicroBlaze-a
Opis signalnog interfejsa MicroBlaze Interfejs LMB signala Addr[0:31] - Adresni bus je izlaz iz jezgra i označava memorijsku adresu kojoj se pristupa prilikom transfera. Byte_Enable[0:3] - signali izlaze iz jezgra i ukazuju na to koja linija bajta podacionog bus-a sadrži ispravni podatak. Data_Write[0:31] - Ovaj bus izlazi iz jezgra i sadrži podatke koji se unose u memoriju AS - označava početak prenosa, adresnu magistralu i bit-enable. Read_Strobe - izlazi iz jezgra i označava da je čitanje prenosa u toku Write_Strobe - izlazi iz jezgra i označava da je operacija upisa u toku. Data_Read[0:31] - Magistrala čitanja podataka je u jezgru i sadrži podatke koji se čitaju iz memorije. Ready - je signal u jezgru koji označava kompletan trenutni i sledeći prenos koji može početi u sledećem taktu Clk - Sve operacije LMB su sinhroniizovane taktom jezgra Microblaze-a
Opis signalnog interfejsa MicroBlaze LMB izvršavanja Opšteoperacijeupisa Opšteoperaciječitanja
Opis signalnog interfejsa MicroBlaze Operacija upisa back-to-back Operacija čitanja back-to-back jednog ciklusa
Opis signalnog interfejsa MicroBlaze 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 aplikacije binarnog interfejsa Tipove podataka Registar metoda konvencija Magacin konvencija Model memorije Obrada prekida i izuzetaka MicroBlaze aplikacije binarnog interfejsa
MicroBlaze aplikacije binarnog interfejsa Tipovi podataka
MicroBlaze aplikacije binarnog interfejsa okvirena polja označavaju deo magacina koji poziva funkciju Konvencija magacina neuokvirena polja označavaju poziv konture funkcije
MicroBlaze aplikacije binarnog interfejsa Model memorije Polje kratkih podataka Polje podataka Slova i konstante 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 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. Konstantre su smeštene u poljima kratkih podataka i mogu samo da se čitaju
Skup instrukcija MicroBlaze-a Notacija Format Instrukcije Skup instrukcija arhitekture MicroBlaze-a
Skup instrukcija MicroBlaze-a Tabela simbola koje koristi MicroBlaze Notacija
Skup instrukcija MicroBlaze-a Sadrži opkod, jedno odredište i dva izvorna registra. Format Tip A Tip B Sadrži opkod, jednu destinaciju, jedan izvorni registar i neposrednu 16-bitnu vrednost
Skup instrukcija MicroBlaze-a Instrukcije Za lakšu obradu Xilinx sadrži mnemonik, opis instrukcije, pseudokod i listu registarskih skraćenica add Arithmetic Add add rD, rA, rB Add Ovde je data samo jedna instrukcija kao primer. mnemonik Opis instrukcije zbir registra sadržaja rA i rB upisuje se u registar rD
Skup instrukcija MicroBlaze-a Aritmetičke instrukcije add, addi, fadd sub, subi, rsub, rsubi, frsub mul, muli, fmul, mulh, mulhsu div, fdiv, idiv fsqrt operacija sabiranja Format naredbe je: add rD,rA,rB Operacija oduzimanje Format naredbe je: sub rD,rA,rB Operacija oduzimanje Format naredbe je: mul rD,rA,rB Operacija deljenje Format naredbe je: div rD,rA,rB Operacija korenovanja Format naredbe je: fsqrt rD,rA
Skup instrukcija MicroBlaze-a Logičke instrukcije and, andi, andn, andni or, ori xor, xori Not sra, src, bs, bsi Operacija I Format naredbe: and rD,rA,rB Operacija ILI Format naredbe: or rD,rA,rB Operacija isključivo ILI Format naredbe: xor rD,rA,rB Operacija negacije Format naredbe: not rD,rA Operacija pomeranja Format naredbe: sra rD,rA Operacija pomeranja Format naredbe: bs rD,rA,rB
Skup instrukcija MicroBlaze-a Branhcinstrukcije beq, beqi bge, bgei bgt, bgti ble, blei bne, bnei Format naredbe je: (mnemonik) rA,rB
Skup instrukcija MicroBlaze-a Instrukcije tipa load/store lbu, lbui lhu, lhui lw, lwi sb, sbi sh, shi sw, swi Instrukcije tipa load Instrukcije tipa store
Skup instrukcija MicroBlaze-a Instrukcije tipa move Ostale instrukcije mfs, mts wdc, wic msrclr, msrset put, putd rtbd, rtid, rted,rtsd sext8, sext16 cmp, fcmp brk, brki Instrukcije tipa write Prenos podataka Instrukcije tipa read Instrukcije tipa move Instrukcije tipa return Prenos upravljanja Instrukcije tipa poređenja Instrukcije tipa break
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.
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