Procesor MicroBlaze je bil razvit leta 2002 za integracijo več zapletenih funkcij za izpolnjevanje novih in rastočih tržnih zahtev. Torej je procesor MicroBlaze bistveni element v nizkocenovnem portfelju družbe Xilinx, ki omogoča hitrejši razvoj sistema, ki vsebuje Artix®-7 FPGA , Spartan®-6, Zynq®-7000 AP SoC. Ta procesor je izjemno konfigurabilen, tako da ga je mogoče uporabiti kot vgrajeni procesor ali mikrokrmilnik znotraj FPGA in tudi kot soprocesor v Zynq-7000 AP SoC, ki temelji na ARM Cortex-A9. Ta članek vsebuje kratke informacije o procesor MicroBlaze – arhitektura in delo z aplikacijami.
Kaj je procesor Microblaze?
Mehki mikroprocesor, ki je zasnovan predvsem za FPGA Xilinx, je znan kot procesor MicroBlaze. Ta procesor je preprosto implementiran v splošni pomnilnik in logično strukturo FPGA-jev Xilinx. Ta procesor je podoben arhitekturi DLX, ki temelji na RISC, in ima prilagodljiv sistem povezovanja, tako da podpira različne vgrajene aplikacije. Glavno V/I vodilo in povezava AXI MicroBlaze je pomnilniško preslikano transakcijsko vodilo z možnostjo glavnega in podrejenega.
MicroBlaze uporablja namensko vodilo LMB za dostop do lokalnega pomnilnika in omogoča hitro shranjevanje na čipu. Številne dele tega procesorja lahko konfigurira uporabnik, na primer velikost predpomnilnika, globino enote za upravljanje pomnilnika cevovoda, vgrajene zunanje naprave in vmesnike vodila.
Funkcije Microblaze
The Lastnosti Microblaza e vključujejo naslednje. Ima 32 splošnih registrov.
- Ima 32-bitne ukazne besede, vključno z 2 načinoma naslavljanja in 3 operandi.
- Naslovno vodilo je 32-bitno.
- Ima 3-stopenjski cevovod ali 5-stopenjski cevovod.
- ALU blok enota s prestavno ročico.
- Harvardska arhitektura vključuje 32-bitno podatkovno in naslovno vodilo.
- Podatkovni vmesnik & LMB ali navodila lokalnega pomnilniškega vodila.
- Pretočna vmesnika AX14 in AX14.
- Enota za plavajočo vejico in enota za upravljanje pomnilnika.
- Podpira lockstep.
- Vmesnik za odpravljanje napak in sledenje.
Arhitektura Microbaze
Blokovni diagram procesorja MicroBlaze je prikazan spodaj. Ta procesor MicroBlaze je izjemno prilagodljiv in podpira več kot 70 možnosti oblikovanja. Ta arhitektura prikazuje stalne funkcije strojne opreme kot tudi nastavljive možnosti, kot so predpomnilnik navodil ali podatkov, enota za upravljanje pomnilnika, enota s plavajočo vejico itd.
An vgrajeni sistem sestavljen okoli procesorja MicroBlaze, vključuje predvsem mehko procesorsko jedro MicroBlaze, lokalni pomnilnik na čipu, medsebojne povezave standardnega vodila in periferne enote OPB (periferno vodilo na čipu). Procesorski sistem MicroBlaze v glavnem obsega od jedra procesorja z lokalnim pomnilnikom do velikega sistema, ki vključuje več MicroBlaze procesorji , zunanji pomnilnik in številne zunanje naprave OPB.
Mehko procesorsko jedro
Mehko procesorsko jedro MicroBlaze je osrednjega pomena za vgrajeni sistem MicroBlaze. To je zelo hiter in učinkovit 32-bitni procesor RISC, ki ima naslednje funkcije.
- Nabor navodil je pravokoten.
- Ločena vodila za podatke in navodila.
- 32-bitni splošni registri.
- Ima neobvezen popoln 32-bitni menjalnik.
- Vgrajeni vmesniki za hiter OCM ali pomnilnik na čipu & IBM-ov industrijski standard OPB (On-chip Peripheral Bus).
Izvedbe znotraj Virtex-II in kasnejših naprav podpirajo več strojne opreme.
Lokalni pomnilnik na čipu
Sinhroni pomnilnik je lokalni pomnilnik, ki se uporablja predvsem za omogočanje blokovnega RAM-a na čipu.
Standardne povezave vodil
Vmesniki vodila na strani navodil in podatkov vključujejo vmesnik do lokalnega pomnilnika, ki se imenuje LMB (Local Memory Bus) in vmesnik do IBM-ovega perifernega vodila na čipu. Tako lahko oblikujemo sisteme, ki se strogo držijo harvardske arhitekture, sicer pa lahko za skupno rabo virov uporabimo en sam OPB v kombinaciji prek razsodnika vodila.
Lokalno pomnilniško vodilo zagotavlja zagotovljen enociklični vstop v blok RAM na čipu. To je zelo učinkovit, preprost protokol vodila z enim glavnim in je popoln za povezovanje hitrega lokalnega pomnilnika. OPB ali periferno vodilo na čipu je 32-bitno široko večglavno vodilo, ki je popolno za združevanje perifernih naprav in zunanjega pomnilnika z jedrom procesorja MicroBlaze.
Periferne enote vodila na čipu
Sistem strojne opreme MicroBlaze dopolnjujejo periferne naprave OPB za zagotavljanje različnih funkcij, kot so Watchdog Timer ali Timebase, General Name Timer ali Counters, IC (Interrupt Controller), različni krmilniki, kot so SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, V/I za splošne namene, UART 16450/550 in Ethernet 10/100 MAC. Poleg tega lahko tudi dodamo in definiramo periferne naprave predvsem za funkcije po meri, sicer pa vmesnik za zasnovo, ki obstaja v FPGA.
Set navodil Microblaze
Nizi navodil Microblaze so aritmetični, logični, vejni, nalaganje/shranjevanje in drugi. Velikost vseh navodil je fiksna. Kot operandi so lahko podani največ 3-registri. Microblaze vključuje dva formata navodil tipa A in tipa B, ki sta prikazana spodaj.
Oblika ukaza tipa A se uporablja predvsem za ukaze register-register. Torej vključuje operacijsko kodo, en cilj in dva izvorna registra. Oblika ukaza tipa B se v glavnem uporablja za takojšnja navodila registra, ki vključujejo opkodo, en sam cilj in en izvorni register.& 16-bitni takojšnji vir vrednosti.
V zgornjih dveh formatih navodil je opcode koda operacije, Rd je ciljni register, ki je kodiran s 5-biti, Ra & Rb sta izvorna registra, kjer je vsak kodiran s 5-biti, Immediate pa je 16-bitna vrednost.
Aritmetična navodila
Spodaj so navedena aritmetična navodila tipa A in tipa B.
Vrsta A
DODAJ Rd, Ra, Rb dodati |
Rd = Ra+Rb, prizadeta zastavica za prenašanje |
DODAJ K Rd, Ra, Rb Dodajte in nadaljujte s prenosom |
Rd = Ra+Rb, zastavica Carry ni prizadeta |
RSUB Rd, Ra, Rb Obratno odštevanje |
Rd = R-Rb, zastavica za prenašanje ni prizadeta |
Vrsta B
DODAJ I Rd, Ra, Imm dodajte takoj |
Rd = Ra+signExtend32 (Imm) |
DODAJ IK Rd, Ra, Imm dodajte takoj in nadaljujte s prenosom |
Rd = Ra+ signExtend32 (Imm) |
RSUBIK Rd, Ra, Imm obratno odštevanje s takojšnjim |
Rd = Ra+ signExtend32 (Imm) -Ra |
SRA Rd, Ra aritmetični premik v desno |
Rd = (Ra>>1) |
Logična navodila
Spodaj so navedena logična navodila tipa A in tipa B.
Vrsta A
ALI Rd, Ra, Rb Logično oz |
Rd = Ra| Rb |
IN Rd,Ra,Rb Logičen dodatek |
Rd = Ra & Rb |
XOR Rd, Ra, Rb Logotični xor |
Rd = Rb ^ Rb |
ANDN Rd, Ra, Rb Logično in ne |
Rd = Ra & (Rb) |
Vrsta B
ORI Rd, Ra, Imm logični ALI s takojšnjim |
Rd = Ra | signExtend32 (Imm) |
ANDI Rd, Ra, Imm logični IN s takojšnjim |
Rd = Ra & signExtend32 (Imm) |
XORI Rd, Ra, Imm logični XOR s takojšnjim |
Rd = Ra ^ signExtend32 (Imm) |
ANDNI Rd, Ra, Imm Logično IN NE s takojšnjim |
Rd = Ra & (signExtend32 (Imm)) |
Navodila za podružnice - brezpogojno
Spremenite register programskega števca
BRID Imm podružnica takoj s takojšnjo zamudo |
PC = PC+ signExtend32 (Takoj) omogoči zakasnitev izvedbe reže |
BRLID Rd, Imm veja in povezava takoj s takojšnjo zakasnitvijo (klic funkcije) |
Rd = PC PC = PC+& signExtend32 (Imm) omogoči zakasnitev izvedbe reže |
RTSD Ra, Imm vrnitev iz podprograma |
PC = Ra + signExtend32 (Imm) omogoči zakasnitev izvedbe reže |
RTID Ra, Imm vrnitev iz prekinitve |
PC = Ra + signExtend32 (Imm) omogoči zakasnitev izvedbe reže nastavite omogočitev prekinitve v MSR |
Navodila za podružnice - brezpogojno1
Ko je pogoj izpolnjen, spremenite register programskega števca
BEQI Ra, imm podružnica, če je enaka |
PC = PC+ signExtend32 (Takoj) Če je Ra = = 0 |
MASH Ra, imm podružnica, če ni enaka |
Rd = PC PC = PC+& signExtend32 (Imm) Če Ra! = 0 |
Navodila za podružnice - brezpogojno2
Ko je pogoj izpolnjen, spremenite register programskega števca
BLTI Ra, Imm podružnica, če je nižja od |
PC = PC+ signExtend32 (Takoj) Če je Ra < 0 |
BLEI Ra, Imm podružnica, če je nižja enaka |
Rd = PC PC = PC+& signExtend32 (Imm) Če je Ra!< = 0 |
BGTI Ra, Imm podružnica, če je večja od |
PC = PC+ signExtend32 (Takoj) Če je Ra!> 0 |
BGEI Ra, Imm veja, če je večja enaka |
PC = PC+signExtend32 (Takoj) Če je Ra!>= 0 |
Navodila za nalaganje/shranjevanje - tip A
LW Rd, Ra, Rb Naloži besedo |
Naslov = Ra+Rb Rd = *Naslov |
JZ Rd, Ra, Rb Shrani besedo |
Naslov – Ra+Rb *Naslov = Rd |
Vrsta B
LWI Rd, Ra, Imn Naloži besedo takoj |
Naslov = Ra + signExtend32 (Imm) Rd = *Naslov |
JZ Rd, Ra, Imm Shranite besedo takoj |
Naslov = Ra + signExtend32 (Imm) *Naslov = Rd |
Druga navodila
IMM, Imm takojšnje |
Razširite Imm predhodnega ukaza tipa B na 32 bitov. |
MFS Rd, Sa Premik iz registra posebnih namenov |
Rd = Sa Sa- register za posebne namene, izvorni operand
|
MTS Sd, Ra Premik v register za posebne namene |
Sd = Ra Sd – register za posebne namene, ciljni operand |
Registri
Arhitektura procesorja MicroBlaze je popolnoma ortogonalna in vključuje 32-bitne registre splošnega namena in 32-bitne registre za posebne namene, kot sta programski števec in register statusa stroja.
Arhitektura cevovoda
MicroBlaze uporablja 3-stopenjsko arhitekturo cevovoda, vključno s stopnjami pridobivanja, dekodiranja in dokončanja. Samodejno se posredovanje podatkov, odcepi in zastoj cevovoda določijo znotraj strojne opreme.
Naloži ali shrani arhitekturo
MicroBlaze podpira pomnilnik v treh velikostih podatkov 8 bitov (Byte), 16 bitov (Halfword) in 32 bitov (Word). Torej so dostopi do pomnilnika vedno usklajeni glede na velikost podatkov. To je Big-Endian procesor, ki uporablja naslov Big-Endian naslova kot tudi konvencije označevanja, ko enkrat dostopa do pomnilnika.
Prekinitve
Ko pride do prekinitve, bo ta procesor končal trenutno izvedbo, da bi upravljal zahtevo za prekinitev prek razvejanja na vektorski naslov prekinitve in shranil naslov ukaza, ki ga je treba izvesti. Ta procesor bo ustavil prihodnje prekinitve tako, da počisti zastavico IE (Interrupt Enable) v MSR (Machine Status Register).
Kako deluje Microblaze?
Procesor MicroBlaze podpira 32-bitno širino vodila in to procesorsko jedro je mehanizem, ki temelji na RISC in vključuje registrsko datoteko, ki temelji na 32-bitnem LUT RAM-u prek ločenih navodil za dostop do pomnilnika in podatkov.
Ta procesor preprosto podpira BlockRAM na čipu in zunanji pomnilnik. Podobno kot IBM PowerPC; vse zunanje naprave uporabljajo podobno vodilo CoreConnect OPB, torej; periferne enote procesorja se dobro ujemajo s PowerPC na Virtex-II Pro.
Procesor MicroBlaze zagotavlja popolno prilagodljivost pri izbiri kombinacije funkcij pomnilnika, perifernih naprav in vmesnikov, ki vam bodo zagotovile natančen sistem, ki ga potrebujete na eni sami FPGA z nižjimi stroški.
Razlika Č/B Microblaze proti Risc-V
The razlika med MicroBlaze in RISC v vključujejo naslednje.
Microblaze |
Risc-V |
Je mehko mikroprocesorsko jedro, zasnovano predvsem za Xilinx FPGA.
|
RISC-V je arhitektura nabora navodil, ki temelji na načelih RISC.
|
Uporablja harvardsko arhitekturo RISC. | Uporablja arhitekturo nabora navodil. |
Njegova licenca je lastniška (Xilinx) | Njegova licenca je odprtokodna. |
Globina cevovoda je 3 ali 5. | Globina cevovoda je 5. |
Njegova zmogljivost je 280 DMIP. | Njegova zmogljivost je 250 DMIP. |
Njegova hitrost je 235 MHz. | Njegova hitrost je 250 MHz. |
Ima 1027 LUT. | Ima 4125 LUT. |
Izvedba uporabljene tehnologije je Xilinx FPGA. | Izvedba uporabljene tehnologije je FPGA/ASIC. |
Prednosti Microblaze
The prednosti MicroBlaze vključujejo naslednje.
- Je ekonomičen.
- Je zelo nastavljiv.
- Njegova zmogljivost je visoka v primerjavi z ARM.
- Podprt je z vgrajenim razvojnim kompletom.
- Je mehak mikroprocesor jedro.
- Za pomoč pri hitri ureditvi vaše aplikacije ta procesor vključuje tri fiksne konfiguracije, ki so povezane z dobro znanimi procesorskimi razredi mikrokrmilnik, realnočasovni in aplikacijski procesor.
Aplikacije Microblaze
The aplikacije MicroBlaze vključujejo naslednje.
- Ta procesor izpolnjuje številne zahteve različnih aplikacij, kot so industrijske, avtomobilske, medicinske in potrošniške itd.
- Aplikacije MicroBlaze segajo od preprostih avtomatov stanja, ki temeljijo na programski opremi, do kompleksnih krmilnikov, ki se uporabljajo v vgrajenih aplikacijah ali internetnih napravah.
- Optimiziran je za vgrajene aplikacije, kot so industrijski nadzor, pisarniška avtomatizacija in avtomobilizem.
- MicroBlaze je sposoben komunicirati z velikim naborom zunanjih naprav, da se prilega aplikacijam srednjega obsega.
- Zaradi mehke narave tega procesorja ga je mogoče prilagoditi za različne aplikacije, kjer lahko oblikovalci zamenjajo funkcije za velikost, da dosežejo cilje glede cene in zmogljivosti za medicinske, avtomobilske, industrijske in varnostne aplikacije.
Torej gre za vse pregled Microblaze procesor. To je popolnoma opremljeno 32-bitno programabilno mehko procesorsko jedro RISC. Ta procesor izpolnjuje različne zahteve znotraj različnih področij, kot so trgi potrošniške, medicinske, industrijske, avtomobilske in komunikacijske infrastrukture. Je izjemno nastavljiv, zato se uporablja kot vgrajeni procesor ali mikrokrmilnik znotraj FPGA, sicer kot soprocesor za ARM. Tukaj je vprašanje za vas, kaj je FPGA?