Kaj je procesor Microblaze: arhitektura, delovanje in njegove aplikacije

Preizkusite Naš Instrument Za Odpravo Težav





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.

  Arhitektura procesorja Microblaze
Arhitektura procesorja Microblaze

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.

  Formati navodil
Formati navodil

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?