Vad är Microblaze-processor: arkitektur, arbete och dess tillämpningar

Prova Vårt Instrument För Att Eliminera Problem





MicroBlaze-processorn utvecklades 2002 för att integrera flera komplicerade funktioner för att möta nya såväl som växande efterfrågan på marknaden. Så, MicroBlaze-processorn är ett viktigt element i Xilinx Low-End Portfolio för att möjliggöra snabbare systemutveckling som innehåller Artix®-7 FPGA:er , Spartan®-6, Zynq®-7000 AP SoCs. Denna processor är extremt konfigurerbar, så den kan användas som en inbäddad processor eller mikrokontroller inom FPGA och även användas som en co-processor i Zynq-7000 AP SoCs baserade på ARM Cortex-A9. Den här artikeln ger kort information om MicroBlaze-processor – arkitektur och arbete med applikationer.


Vad är Microblaze-processor?

Den mjuka mikroprocessorn som huvudsakligen är designad för FPGA från Xilinx är känd som MicroBlaze-processorn. Denna processor är helt enkelt implementerad i det allmänna minnes- och logikstrukturen för FPGA:er från Xilinx. Denna processor liknar DLX-arkitekturen baserad på RISC och den har ett flexibelt sammankopplingssystem så att den stöder olika inbäddade applikationer. Den huvudsakliga I/O-bussen och AXI-sammankopplingen av MicroBlaze är en minnesmappad transaktionsbuss med en master-slav-funktion.



MicroBlaze använder en dedikerad LMB-buss för att komma åt lokalt minne och ger snabb lagring på chip. Många delar av denna processor kan användarkonfigureras som storleken på cachen, djupet på pipelineminneshanteringsenheten, inbyggd kringutrustning och bussgränssnitt.

Microblaze funktioner

De funktioner hos Microblaz e inkludera följande. Den har 32 allmänna register.



  • Den har 32-bitars instruktionsord inklusive 2 adresseringslägen och 3 operander.
  • Adressbussen är 32-bitars.
  • Den har en 3-stegs pipeline eller en 5-stegs pipeline.
  • En ALU-blockenhet med växelreglage.
  • Harvard-arkitekturen inkluderar 32-bitars data- och adressbuss.
  • Datagränssnitt & LMB eller lokal minnesbussinstruktion.
  • AX14 och AX14 strömgränssnitt.
  • Flyttalsenhet & minneshanteringsenhet.
  • Den stöder lockstep.
  • Debug & trace gränssnitt.

Microbaze arkitektur

Blockschemat för MicroBlaze-processorn visas nedan. Denna MicroBlaze-processor är extremt anpassningsbar och den stöder över 70 designalternativ. Den här arkitekturen visar permanenta hårdvarufunktioner såväl som konfigurerbara alternativ som instruktions- eller datacache, minneshanteringsenheten, flytpunktsenheten, etc.

En inbyggda system monterad kring en MicroBlaze-processor inkluderar huvudsakligen MicroBlaze Soft Processor Core, On-chip Local Memory, Standard Bus Interconnects och OPB Peripherals (On-chip Peripheral Bus). Ett MicroBlaze-processorsystem sträcker sig huvudsakligen från en kärna av processor med ett lokalt minne till ett stort system som inkluderar flera MicroBlaze processorer , externt minne och många OPB kringutrustning.

  Microblaze-processorarkitektur
Microblaze-processorarkitektur

Mjuk processorkärna

Den mjuka processorkärnan i MicroBlaze är central för det inbyggda MicroBlaze-systemet. Detta är en mycket snabb och effektiv 32-bitars RISC-processor som har följande funktioner.

  • Instruktionsuppsättningen är ortogonal.
  • Separata data- och instruktionsbussar.
  • 32-bitars register för allmänna ändamål.
  • Den har en valfri komplett 32-bitars växelreglage.
  • Inbyggda gränssnitt till snabb OCM eller on-chip-minne & IBM:s industristandard OPB (On-chip Peripheral Bus).

Implementeringar inom Virtex-II och efterföljande enheter stöder flerfaldig hårdvara.

On-chip lokalt minne

Det synkrona minnet är ett lokalt minne som huvudsakligen används för att tillåta on-chip Block RAM.

Standard bussförbindelser

Bussgränssnitten på instruktions- och datasidan inkluderar ett gränssnitt till lokalt minne som kallas LMB (Local Memory Bus) och ett gränssnitt till On-chip Peripheral Bus från IBM. Så vi kan designa system som strikt håller sig till Harvard-arkitekturen, annars kan vi, för att dela resurser, använda en enda OPB i kombination genom en bussarbiter.

Den lokala minnesbussen ger en säker encyklisk entré för on-chip block RAM. Detta är ett mycket effektivt, enkelt och enmaster bussprotokoll och det är perfekt för gränssnitt mellan snabbt lokalt minne. OPB eller On-chip Peripheral Bus är en 32-bitars bred multi-master buss som är perfekt för att förena kringutrustning och externt minne till kärnan i MicroBlaze-processorn.

On-chip kringutrustning för buss

MicroBlaze-hårdvarusystemet kompletteras av OPB kringutrustning för att tillhandahålla olika funktioner som Watchdog Timer eller Timebase, General purpose timer eller Counters, IC (Interrupt Controller), olika kontroller som SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, I/O för allmänt bruk, UART 16450/550 och Ethernet 10/100 MAC. Dessutom kan vi också lägga till och definiera kringutrustning främst för anpassade funktioner, annars ett gränssnitt till en design som finns i FPGA.

Microblaze instruktionsset

Microblaze-instruktionsuppsättningar är aritmetik, logik, gren, ladda/lager och andra. Storleken på alla instruktioner är fast. Högst 3-register kan ges som operander. Microblaze innehåller två instruktionsformat Typ A och Typ B som visas nedan.

Typ A-instruktionsformat används främst för register-register-instruktioner. Så det inkluderar opcode, enda destination och två källregister. Typ B-instruktionsformat används huvudsakligen för omedelbara registerinstruktioner som inkluderar opcode, single destination och single source register.& en 16-bitars omedelbar värdekälla.

  Instruktionsformat
Instruktionsformat

I ovanstående två instruktionsformat är opkoden en operationskod, Rd är ett destinationsregister som är kodat med 5-bitar, Ra & Rb är källregister där var och en kodad med 5-bitar och Immediate är ett 16-bitars värde.

Aritmetiska instruktioner

Typ A och Typ B aritmetiska instruktioner ges nedan.

Typ A

ADD Rd, Ra, Rb

Lägg till

Rd = Ra+Rb, bärflagga påverkad

ADD K Rd, Ra, Rb

Lägg till och behåll bära

Rd = Ra+Rb, bärflaggan påverkas inte

RSUB Rd, Ra, Rb

Omvänt subtrahera

Rd = R-Rb, bärflaggan påverkas inte

Typ B

ADD I Rd, Ra, Imm

lägga till omedelbart

Rd = Ra+signExtend32 (Imm)

ADD IK Rd, Ra, Imm

lägg till omedelbart och håll kvar

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

omvänd subtrahera med omedelbar

Rd = Ra+ teckenExtend32 (Imm) -Ra

SRA Rd, Ra

aritmetiskt skift till höger

Rd = (Ra>>1)

Logiska instruktioner

De logiska instruktionerna för typ A och typ B ges nedan.

Typ A

ELLER Rd, Ra, Rb

Logisk eller

Rd = Ra| Rb

OCH Rd,Ra,Rb

Logiskt tillägg

Rd = Ra & Rb
XOR Rd, Ra, Rb

Logoisk xor

Rd = Rb ^ Rb

ANDN Rd, Ra, Rb

Logiskt och inte

Rd = Ra & (Rb)

Typ B

ORI  Rd, Ra, Imm

logisk ELLER med omedelbar

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

logiskt OCH med omedelbar

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

logoisk XOR med omedelbar

Rd = Ra ^ teckenExtend32 (Imm)

ANDNI Rd, Ra, Imm

Logisk OCH INTE med omedelbar

Rd = Ra & (signExtend32 (Imm))

Branch Instruktioner- Ovillkorlig

Ändra programräknarens register

BRID  Imm

filial omedelbart med omedelbar fördröjning

PC = PC+ signExtend32 (Imm)

tillåt fördröjd slotexekvering

BRLID Rd, Imm

filial och länk omedelbart med omedelbar fördröjning (funktionsanrop)

Rd = PC

PC = PC+& signExtend32 (Imm)

tillåt fördröjd slotexekvering

RTSD  Ra, Imm

tillbaka från subrutinen

PC = Ra + signExtend32 (Imm)

tillåt fördröjd slotexekvering

RTID Ra, Imm

återvända från avbrott

PC = Ra + signExtend32 (Imm)

tillåt fördröjd slotexekvering

ställ in avbrottsaktivering i MSR

Branch Instruktioner- Ovillkorlig1

Ändra programräknareregistret när ett villkor är uppfyllt

BEQI Ra, Imm

gren om lika

PC = PC+ signExtend32 (Imm)

Om Ra = = 0

MASH Ra, Imm

gren om inte lika

Rd = PC

PC = PC+& signExtend32 (Imm)

Om Ra! = 0

Branch Instruktioner- Ovillkorlig2

Ändra programräknareregistret när ett villkor är uppfyllt

BLTI  Ra, Imm

gren om lägre än

PC = PC+ signExtend32 (Imm)

Om Ra < 0

BLEI Ra, Imm

gren om lägre lika än

Rd = PC

PC = PC+& signExtend32 (Imm)

Om Ra!< = 0

BGTI Ra, Imm

gren om större än

PC = PC+ signExtend32 (Imm)

Om Ra!> 0

BGEI Ra, Imm

gren om större lika än

PC = PC+signExtend32 (Imm)

Om Ra!>= 0

Ladda/förvara instruktioner -Typ A

LW Rd, Ra, Rb

Ladda ord

Adress = Ra+Rb

Rd = *Adress

SW Rd, Ra, Rb

Lagra ord

Adress – Ra+Rb

*Adress = Rd

Typ B

LWI  Rd, Ra, Imn

Ladda ordet omedelbart

Adress = Ra + teckenExtend32 (Imm)

Rd = *Adress

SW Rd, Ra, Imm

Spara ordet omedelbart

Adress = Ra + teckenExtend32 (Imm)

*Adress = Rd

Övriga instruktioner

IMM, Imm

omedelbar

Utöka Imm för en föregående typ B-instruktion till 32-bitar.
MFS Rd, Sa

Flytta från specialregistret

Rd = Sa

Sa- specialregister, källoperand

MTS Sd, Ra

Flytta till specialregistret

Sd = Ra

Sd – specialregister, destinationsoperand

Register

Arkitekturen hos MicroBlaze-processorn är helt ortogonal som inkluderar 32-bitars register för allmänna ändamål och 32-bitars register för specialändamål som programräknare och maskinstatusregister.

Pipeline arkitektur

MicroBlaze använder en 3-stegs pipeline-arkitektur inklusive hämtning, avkodning och kompletta steg. Automatiskt bestäms datavidarebefordran, grenar och pipelinestopp i hårdvaran.

Ladda eller lagra arkitektur

MicroBlaze stöder minne i tre datastorlekar 8 bitar (Byte), 16 bitar (Halvord) och 32 bitar (Word). Så minnesåtkomster är alltid datastorleksanpassade. Detta är en Big-Endian-processor som använder adressen till Big-Endian-adressen såväl som märkningskonventioner när den väl kommer åt minnet.

Avbryter

När väl ett avbrott äger rum, kommer denna processor att avsluta den aktuella exekveringen för att hantera avbrottsbegäran genom förgrening för att avbryta vektoradress och lagra instruktionsadressen som behöver exekveras. Denna processor kommer att stoppa framtida avbrott genom att rensa flaggan IE (Interrupt Enable) i MSR (Machine Status Register).

Hur fungerar Microblaze?

MicroBlaze-processorn stöder 32-bitars bussbredd och denna processorkärna är en RISC-baserad motor som inkluderar en registerfil baserad på 32-bitars LUT RAM genom separata instruktioner för minne och dataåtkomst.
Denna processor stöder helt enkelt både on-chip BlockRAM och externt minne. Liknar IBM PowerPC; all kringutrustning använder den liknande CoreConnect OPB-bussen så; processorns kringutrustning är väl matchad med PowerPC på Virtex-II Pro.

MicroBlaze-processorn ger fullständig flexibilitet att välja kombinationen av minne, kringutrustning och gränssnittsfunktioner som ger dig det exakta systemet som du behöver på en enda FPGA med lägre kostnad.

Skillnad B/W Microblaze Vs Risc-V

De skillnaden mellan MicroBlaze och RISC v inkluderar följande.

Microblaze

Risc-V

Det är en mjuk mikroprocessorkärna huvudsakligen designad för Xilinx FPGA.

RISC-V är en instruktionsuppsättningsarkitektur rotad i RISC-principer.

Den använder Harvard RISC-arkitektur. Den använder instruktionsuppsättningsarkitektur.
Dess licens är proprietär (Xilinx) Dess licens är öppen källkod.
Rörledningens djup är 3 eller 5. Rörledningens djup är 5.
Dess prestanda är 280 DMIPs. Dess prestanda är 250 DMIPs.
Dess hastighet är 235 MHz. Dess hastighet är 250 MHz.
Den har 1027 LUT. Den har 4125 LUT.
Implementeringen av tekniken som används är Xilinx FPGA. Implementeringen av tekniken som används är FPGA/ASIC.

Microblaze fördelar

De fördelarna med MicroBlaze inkluderar följande.

  • Det är ekonomiskt.
  • Den är mycket konfigurerbar.
  • Dess prestanda är hög jämfört med ARM.
  • Det stöds av ett inbäddat utvecklingskit.
  • Det är en mjuk mikroprocessor kärna.
  • För att hjälpa dig att snabbt ordna din applikation innehåller denna processor tre fasta konfigurationer som är relaterade till välkända processorklasser mikrokontroller, realtid och applikationsprocessor.

Microblaze-applikationer

De tillämpningar av MicroBlaze inkluderar följande.

  • Denna processor uppfyller många olika applikationskrav som industri, fordon, medicin & konsument, etc.
  • Tillämpningarna av MicroBlaze sträcker sig från enkla tillståndsmaskiner baserade på mjukvara till komplexa kontroller som används i inbyggda applikationer eller internetbaserade apparater.
  • Den är optimerad för inbyggda applikationer som industriell styrning, kontorsautomation och fordon.
  • MicroBlaze kan kommunicera med en stor uppsättning kringutrustning för att passa i medelstora applikationer.
  • Den mjuka karaktären hos denna processor gör den anpassningsbar för olika applikationer där designers kan byta funktioner för storlek för att möta pris- och prestandamål för medicinska, fordons-, industri- och säkerhetsapplikationer.

Alltså handlar det här om en översikt över Microblaze processor. Detta är en fullt utrustad, 32-bitars programmerbar RISC mjuk processorkärna. Denna processor uppfyller olika krav inom olika områden som konsument-, medicin-, industri-, fordons- och kommunikationsinfrastrukturmarknader. Den är extremt konfigurerbar, så använd som den inbäddade processorn eller mikrokontrollern inom FPGA, annars som en co-processor för ARM. Här är en fråga till dig, vad är FPGA?