Hva er Microblaze-prosessor: arkitektur, arbeid og dens applikasjoner

Prøv Instrumentet Vårt For Å Eliminere Problemer





MicroBlaze-prosessoren ble utviklet i 2002 for å integrere flere kompliserte funksjoner for å møte nye så vel som økende markedsetterspørsel. Så, MicroBlaze-prosessoren er et viktig element i Low-End Portfolio av Xilinx for å muliggjøre raskere systemutvikling som inneholder Artix®-7 FPGAer , Spartan®-6, Zynq®-7000 AP SoCs. Denne prosessoren er ekstremt konfigurerbar, så den kan brukes som en innebygd prosessor eller mikrokontroller i FPGA-er og også brukes som en co-prosessor i Zynq-7000 AP SoCs basert på ARM Cortex-A9. Denne artikkelen gir kort informasjon om MicroBlaze-prosessor – arkitektur og arbeid med applikasjoner.


Hva er Microblaze-prosessor?

Den myke mikroprosessoren som hovedsakelig er designet for FPGA-er fra Xilinx er kjent som MicroBlaze-prosessoren. Denne prosessoren er ganske enkelt implementert i den generelle minne- og logikkstrukturen til FPGA-er til Xilinx. Denne prosessoren ligner på DLX-arkitekturen basert på RISC og den har et fleksibelt sammenkoblingssystem slik at den støtter forskjellige innebygde applikasjoner. Hoved-I/O-bussen og AXI-forbindelsen til MicroBlaze er en minnetilordnet transaksjonsbuss med en master-slave-fasilitet.



MicroBlaze bruker en dedikert LMB-buss for å få tilgang til lokalt minne og gir rask lagring på brikken. Mange deler av denne prosessoren kan brukerkonfigureres som størrelsen på hurtigbufferen, dybden på pipeline-minneadministrasjonsenheten, innebygde perifere enheter og bussgrensesnitt.

Microblaze-funksjoner

De funksjoner til Microblaz e inkludere følgende. Den har 32 generelle registre.



  • Den har 32-bits instruksjonsord inkludert 2 adresseringsmoduser og 3 operander.
  • Adressebussen er 32-bit.
  • Den har 3-trinns rørledning eller en 5-trinns rørledning.
  • En ALU-blokkenhet med skifter.
  • Harvard-arkitekturen inkluderer 32-biters data og adressebuss.
  • Datagrensesnitt og LMB eller lokal minnebussinstruksjon.
  • AX14 og AX14 strømgrensesnitt.
  • Flytepunktsenhet og minnestyringsenhet.
  • Den støtter låsetrinn.
  • Feilsøking og sporingsgrensesnitt.

Microbaze arkitektur

Blokkskjemaet til MicroBlaze-prosessoren er vist nedenfor. Denne MicroBlaze-prosessoren er ekstremt tilpassbar og den støtter over 70 designalternativer. Denne arkitekturen viser permanente maskinvarefunksjoner så vel som konfigurerbare alternativer som instruksjons- eller databuffer, minneadministrasjonsenheten, flytepunktsenheten, etc.

An integrert system satt sammen rundt en MicroBlaze-prosessor inkluderer hovedsakelig MicroBlaze Soft Processor Core, On-chip Local Memory, Standard Bus Interconnects og OPB Peripherals (On-chip Peripheral Bus). Et MicroBlaze-prosessorsystem spenner hovedsakelig fra en kjerne av prosessor med et lokalt minne til et stort system som inkluderer flere MicroBlaze prosessorer , eksternt minne og mange OPB-tilbehør.

  Microblaze prosessorarkitektur
Microblaze prosessorarkitektur

Myk prosessorkjerne

Den myke prosessorkjernen til MicroBlaze er sentral i det innebygde MicroBlaze-systemet. Dette er en veldig rask og effektiv 32-bits RISC-prosessor som har følgende funksjoner.

  • Instruksjonssettet er ortogonalt.
  • Separate data- og instruksjonsbusser.
  • 32-bits registre for generell bruk.
  • Den har en valgfri komplett 32-bits løpsskifter.
  • Innebygde grensesnitt til rask OCM eller on-chip minne og IBMs industristandard OPB (On-chip Peripheral Bus).

Implementeringer innenfor Virtex-II og etterfølgende enheter støtter multiplisering av maskinvare.

On-chip lokalt minne

Det synkrone minnet er et lokalt minne som hovedsakelig brukes for å tillate on-chip Block RAM.

Standard bussforbindelser

Bussgrensesnittene på instruksjons- og datasiden inkluderer et grensesnitt til lokalt minne som kalles LMB (Local Memory Bus) og et grensesnitt til On-chip Peripheral Bus til IBM. Så vi kan designe systemer som strengt tatt holder seg til Harvard-arkitekturen, ellers, for å dele ressurser, kan vi bruke en enkelt OPB i kombinasjon gjennom en buss-arbiter.

Den lokale minnebussen gir garantert en-syklus inngang for on-chip blokk RAM. Dette er en veldig effektiv, enkel og enkelt-master bussprotokoll, og den er perfekt for grensesnitt med raskt lokalt minne. OPB eller On-chip Peripheral Bus er en 32-bit bred multi-master buss som er perfekt for å forene periferiutstyr og eksternt minne til kjernen av MicroBlaze-prosessoren.

On-chip perifer bus periferiutstyr

MicroBlaze-maskinvaresystemet kompletteres av OPB-tilbehør for å gi forskjellige funksjoner som Watchdog Timer eller Timebase, General purpose Timer eller Counters, IC (Interrupt Controller), forskjellige kontrollere som SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, generell I/O, UART 16450/550 og Ethernet 10/100 MAC. I tillegg kan vi også legge til og definere periferiutstyr hovedsakelig for tilpassede funksjoner, ellers et grensesnitt til et design som finnes i FPGA.

Microblaze instruksjonssett

Microblaze instruksjonssett er aritmetikk, logikk, gren, last/lager og andre. Størrelsen på alle instruksjonene er fast. På det meste kan 3-registre gis som operander. Microblaze inkluderer to instruksjonsformater Type A og Type B som er vist nedenfor.

Type A-instruksjonsformat brukes hovedsakelig for registerregisterinstruksjoner. Så det inkluderer opcode, enkelt destinasjon og to kilderegistre. Type B-instruksjonsformat brukes hovedsakelig for registerumiddelbare instruksjoner som inkluderer opcode, enkeltdestinasjon og enkeltkilderegistre.& en 16-bits umiddelbar verdikilde.

  Instruksjonsformater
Instruksjonsformater

I de to ovennevnte instruksjonsformatene er opkoden en operasjonskode, Rd er et destinasjonsregister som er kodet med 5-biter, Ra & Rb er kilderegistre hvor hver kodet med 5-biter og Immediate er en 16-bits verdi.

Aritmetiske instruksjoner

Aritmetiske instruksjoner av type A og type B er gitt nedenfor.

Type A

ADD Rd, Ra, Rb

legge til

Rd = Ra+Rb, bæreflagg påvirket

ADD K Rd, Ra, Rb

Legg til og behold bære

Rd = Ra+Rb, bæreflagg påvirkes ikke

RSUB Rd, Ra, Rb

Omvendt trekke fra

Rd = R-Rb, bæreflagg påvirkes ikke

Type B

ADD I Rd, Ra, Imm

legge til umiddelbart

Rd = Ra+signExtend32 (Imm)

ADD IK Rd, Ra, Imm

legg til umiddelbart og behold bære

Rd = Ra+ tegnExtend32 (Imm)
RSUBIK Rd, Ra, Imm

omvendt trekke fra med umiddelbar

Rd = Ra+ tegnExtend32 (Imm) -Ra

SRA Rd, Ra

aritmetisk skift til høyre

Rd = (Ra>>1)

Logiske instruksjoner

Type A og Type B logiske instruksjoner er gitt nedenfor.

Type A

ELLER Rd, Ra, Rb

Logisk eller

Rd = Ra| Rb

OG Rd,Ra,Rb

Logisk tillegg

Rd = Ra & Rb
XOR Rd, Ra, Rb

Logoisk xor

Rd = Rb ^ Rb

ANDN Rd, Ra, Rb

Logisk og ikke

Rd = Ra & (Rb)

Type B

ORI  Rd, Ra, Imm

logisk ELLER med umiddelbar

Rd = Ra | signExtend32 (Imm)
ANDI  Rd, Ra, Imm

logisk OG med umiddelbar

Rd = Ra & signExtend32 (Imm)
XORI  Rd, Ra, Imm

logoisk XOR med umiddelbar

Rd = Ra ^ signExtend32 (Imm)

ANDNI Rd, Ra, Imm

Logisk OG IKKE med umiddelbar

Rd = Ra & (signExtend32 (Imm))

Avdelingsinstruksjoner-Ubetinget

Endre programtellerregisteret

BRID  Imm

filial umiddelbart med umiddelbar forsinkelse

PC = PC+ signExtend32 (Imm)

tillate forsinket utførelse av spor

BRLID Rd, Imm

gren og kobling umiddelbart med umiddelbar forsinkelse (funksjonsanrop)

Rd = PC

PC = PC+& signExtend32 (Imm)

tillate forsinket utførelse av spor

RTSD  Ra, Imm

retur fra subrutine

PC = Ra + signExtend32 (Imm)

tillate forsinket utførelse av spor

RTID Ra, Imm

tilbake fra avbrudd

PC = Ra + signExtend32 (Imm)

tillate forsinket utførelse av spor

sett avbruddsaktivering i MSR

Avdelingsinstruksjoner-Ubetinget1

Endre programtellerregisteret når en betingelse er oppfylt

BEQI Ra, Imm

gren hvis lik

PC = PC+ signExtend32 (Imm)

Hvis Ra = = 0

MASH Ra, Imm

gren hvis ikke lik

Rd = PC

PC = PC+& signExtend32 (Imm)

Hvis Ra! = 0

Avdelingsinstruksjoner-Ubetinget2

Endre programtellerregisteret når en betingelse er oppfylt

BLTI  Ra, Imm

gren hvis lavere enn

PC = PC+ signExtend32 (Imm)

Hvis Ra < 0

BLEI Ra, Imm

gren hvis lavere lik enn

Rd = PC

PC = PC+& signExtend32 (Imm)

Hvis Ra!< = 0

BGTI Ra, Imm

gren hvis større enn

PC = PC+ signExtend32 (Imm)

Hvis Ra!> 0

BGEI Ra, Imm

gren hvis større lik enn

PC = PC+signExtend32 (Imm)

Hvis Ra!>= 0

Laste-/butikkinstruksjoner - Type A

LW Rd, Ra, Rb

Last inn ord

Adresse = Ra+Rb

Rd = *Adresse

SW Rd, Ra, Rb

Lagre ord

Adresse – Ra+Rb

*Adresse = Rd

Type B

LWI  Rd, Ra, Imn

Last inn ordet umiddelbart

Adresse = Ra + signExtend32 (Imm)

Rd = *Adresse

SW Rd, Ra, Imm

Lagre ordet umiddelbart

Adresse = Ra + signExtend32 (Imm)

*Adresse = Rd

Andre instruksjoner

IMM, Imm

umiddelbar

Utvid Imm for en foregående type B-instruksjon til 32-biter.
MFS Rd, Sa

Flytte fra spesialregisteret

Rd = Sa

Sa- spesialformålsregister, kildeoperand

MTS Sd, Ra

Flytt til spesialregister

Sd = Ra

Sd – spesialregister, destinasjonsoperand

Registrerer

Arkitekturen til MicroBlaze-prosessoren er helt ortogonal, som inkluderer 32-bits registre for generelle formål og 32-biters spesialregistre som Program Counter & Machine Status Register.

Rørledningsarkitektur

MicroBlaze bruker en 3-trinns rørledningsarkitektur inkludert henting, dekoding og komplette stadier. Datavideresending, grener og rørledningsstopp bestemmes automatisk i maskinvaren.

Last eller butikkarkitektur

MicroBlaze støtter minne i tre datastørrelser 8 bits (Byte), 16 bits (Halvord) og 32 bits (Word). Så minnetilganger er alltid datastørrelsesjustert. Dette er en Big-Endian-prosessor som bruker adressen til Big-Endian-adressen samt merkekonvensjoner når den har tilgang til minnet.

Avbryter

Når et avbrudd finner sted, vil denne prosessoren avslutte den nåværende utførelsen for å administrere avbruddsforespørselen gjennom forgrening for å avbryte vektoradressen og lagre instruksjonsadressen som må utføres. Denne prosessoren vil stoppe fremtidige avbrudd ved å fjerne IE (Interrupt Enable)-flagget i MSR (Machine Status Register).

Hvordan fungerer Microblaze?

MicroBlaze-prosessoren støtter 32-bits bussbredde og denne prosessorkjernen er en RISC-basert motor som inkluderer en registerfil basert på 32-bits LUT RAM gjennom separate instruksjoner for minne og datatilgang.
Denne prosessoren støtter ganske enkelt både on-chip BlockRAM og eksternt minne. Ligner på IBM PowerPC; alle periferiutstyr bruker den lignende CoreConnect OPB-bussen så; periferiutstyret til prosessoren er godt matchet med PowerPC på Virtex-II Pro.

MicroBlaze-prosessoren gir full fleksibilitet til å velge kombinasjonen av minne, periferiutstyr og grensesnittfunksjoner som vil gi deg det nøyaktige systemet du trenger på en enkelt FPGA med lavere kostnader.

Forskjellen S/H Microblaze Vs Risc-V

De forskjellen mellom MicroBlaze og RISC v Inkluder følgende.

Microblaze

Risc-V

Det er en myk mikroprosessorkjerne hovedsakelig designet for Xilinx FPGA.

RISC-V er en instruksjonssettarkitektur forankret i RISC-prinsipper.

Den bruker Harvard RISC-arkitektur. Den bruker instruksjonssettarkitektur.
Lisensen er proprietær (Xilinx) Lisensen er åpen kildekode.
Dybden på rørledningen er 3 eller 5. Dybden på rørledningen er 5.
Ytelsen er 280 DMIPs. Ytelsen er 250 DMIPs.
Hastigheten er 235 MHz. Hastigheten er 250 MHz.
Den har 1027 LUT-er. Den har 4125 LUT-er.
Implementeringen av teknologien som brukes er Xilinx FPGA. Implementeringen av teknologien som brukes er FPGA/ASIC.

Microblaze Fordeler

De fordelene med MicroBlaze Inkluder følgende.

  • Det er økonomisk.
  • Den er svært konfigurerbar.
  • Ytelsen er høy sammenlignet med ARM.
  • Den støttes av et innebygd utviklingssett.
  • Det er en myk mikroprosessor kjerne.
  • For å hjelpe deg raskt å ordne applikasjonen din, inkluderer denne prosessoren tre faste konfigurasjoner som er relatert til velkjente prosessorklasser mikrokontroller, sanntid og applikasjonsprosessor.

Microblaze-applikasjoner

De applikasjoner av MicroBlaze Inkluder følgende.

  • Denne prosessoren oppfyller mange forskjellige applikasjonskrav som industri, bil, medisinsk og forbruker, etc.
  • Applikasjonene til MicroBlaze spenner fra enkle tilstandsmaskiner basert på programvare til komplekse kontrollere som brukes i innebygde applikasjoner eller Internett-baserte apparater.
  • Den er optimalisert for innebygde applikasjoner som industriell kontroll, kontorautomatisering og bilindustri.
  • MicroBlaze er i stand til å kommunisere med et stort sett med periferiutstyr for å passe inn i mellomstore applikasjoner.
  • Den myke naturen til denne prosessoren gjør den tilpassbar for ulike applikasjoner der designere kan utveksle funksjoner for størrelse for å møte pris- og ytelsesmål for medisinske, bil-, industri- og sikkerhetsapplikasjoner.

Altså handler dette om en oversikt over Microblaze prosessor. Dette er en fullt utstyrt 32-bits programmerbar RISC myk prosessorkjerne. Denne prosessoren oppfyller ulike krav innenfor ulike felt som forbruker-, medisinsk-, industri-, bil- og kommunikasjonsinfrastrukturmarkeder. Den er ekstremt konfigurerbar, så brukt som den innebygde prosessoren eller mikrokontrolleren i FPGA-er ellers som en co-prosessor for ARM. Her er et spørsmål til deg, hva er FPGA?