Ano ang Microblaze Processor : Arkitektura, Paggawa at Mga Aplikasyon Nito

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Ang processor ng MicroBlaze ay binuo noong 2002 upang isama ang ilang kumplikadong mga tampok upang matugunan ang bago pati na rin ang lumalaking pangangailangan sa merkado. Kaya, ang MicroBlaze processor ay isang mahalagang elemento sa loob ng Low-End Portfolio ng Xilinx upang paganahin ang mas mabilis na pag-develop ng system na naglalaman ng Artix®-7 Mga FPGA , Spartan®-6, Zynq®-7000 AP SoCs. Ang processor na ito ay lubos na na-configure, kaya maaari itong magamit bilang isang naka-embed na processor o microcontroller sa loob ng mga FPGA at ginagamit din bilang isang co-processor sa Zynq-7000 AP SoCs batay sa ARM Cortex-A9. Ang artikulong ito ay nagbibigay ng maikling impormasyon sa MicroBlaze processor – arkitektura at nagtatrabaho sa mga application.


Ano ang Microblaze Processor?

Ang malambot na microprocessor na pangunahing idinisenyo para sa mga FPGA ng Xilinx ay kilala bilang ang MicroBlaze processor. Ang processor na ito ay simpleng ipinatupad sa loob ng pangkalahatang layunin ng memorya at logic fabric ng mga FPGA ng Xilinx. Ang processor na ito ay katulad ng arkitektura ng DLX batay sa RISC at mayroon itong flexible na interconnect system upang masuportahan nito ang iba't ibang naka-embed na application. Ang pangunahing I/O bus at ang AXI interconnect ng MicroBlaze ay isang memory-mapped transaction bus na may master-slave facility.



Gumagamit ang MicroBlaze ng nakalaang LMB bus para ma-access ang lokal na memorya at nagbibigay ng mabilis na on-chip storage. Maraming bahagi ng processor na ito ang maaaring i-configure ng user tulad ng laki ng cache, lalim ng pipeline memory management unit, mga naka-embed na peripheral at mga interface ng bus.

Mga Tampok ng Microblaze

Ang mga tampok ng Microblaz e isama ang mga sumusunod. Mayroon itong 32 pangkalahatang layunin na rehistro.



  • Mayroon itong 32-bit na mga salita sa pagtuturo kasama ang 2 addressing mode at 3 operand.
  • Ang address bus ay 32-bit.
  • Mayroon itong 3 yugto ng pipeline o isang 5-stage na pipeline.
  • Isang ALU block unit na may shifter.
  • Kasama sa arkitektura ng Harvard ang 32-bit na data at address bus.
  • Data interface at LMB o lokal na memory bus na pagtuturo.
  • Mga interface ng stream ng AX14 at AX14.
  • Floating point unit at memory management unit.
  • Sinusuportahan nito ang lockstep.
  • I-debug at i-trace ang interface.

Arkitektura ng Microbaze

Ang block diagram ng MicroBlaze processor ay ipinapakita sa ibaba. Ang MicroBlaze processor na ito ay lubos na napapasadya at ito ay sumusuporta sa higit sa 70 mga pagpipilian sa disenyo. Ang arkitektura na ito ay nagpapakita ng mga permanenteng feature ng hardware pati na rin ang mga opsyon na maaaring i-configure tulad ng Instruction o Data Cache, ang Memory Management Unit, ang Floating Point Unit, atbp.

An naka-embed na sistema na binuo sa paligid ng isang MicroBlaze processor na pangunahing kasama ang MicroBlaze Soft Processor Core, On-chip Local Memory, Standard Bus Interconnects, at OPB Peripherals (On-chip Peripheral Bus). Ang isang MicroBlaze processor system ay pangunahing saklaw mula sa isang core ng processor ng isang lokal na memorya hanggang sa isang malaking system kabilang ang ilang MicroBlaze mga processor , external memory at maraming OPB peripheral.

  Arkitektura ng Microblaze Processor
Arkitektura ng Microblaze Processor

Soft Processor Core

Ang soft processor core ng MicroBlaze ay sentro ng MicroBlaze embedded system. Ito ay isang napakabilis at mahusay na 32-bit na RISC processor na may mga sumusunod na tampok.

  • Orthogonal ang set ng pagtuturo.
  • Paghiwalayin ang mga bus ng data at pagtuturo.
  • 32-bit na pangkalahatang layunin na mga rehistro.
  • Mayroon itong opsyonal na kumpletong 32-bit barrel shifter.
  • Mga inbuilt na interface para mabilis ang OCM o on-chip memory at ang industry-standard na OPB (On-chip Peripheral Bus) ng IBM.

Ang mga pagpapatupad sa loob ng Virtex-II at pagkatapos ng mga device ay sumusuporta sa multiply ng hardware.

On-chip Local Memory

Ang kasabay na memorya ay isang lokal na memorya na pangunahing ginagamit para sa pagpapahintulot sa on-chip Block RAM.

Karaniwang Bus Interconnects

Ang mga interface ng bus sa gilid ng pagtuturo at data ay may kasamang interface sa lokal na memorya na tinatawag na LMB (Local Memory Bus) at isang interface sa On-chip Peripheral Bus ng IBM. Para makapagdisenyo kami ng mga system na mahigpit na nananatili sa arkitektura ng Harvard, kung hindi, para magbahagi ng mga mapagkukunan, maaari naming gamitin ang isang solong OPB sa loob ng kumbinasyon sa pamamagitan ng isang bus arbiter.

Ang lokal na memory bus ay nagbibigay ng siguradong single-cycle entrée para sa on-chip block RAM. Ito ay isang napakahusay, simple, at single-master bus protocol at ito ay perpekto para sa interfacing ng mabilis na lokal na memorya. Ang OPB o On-chip Peripheral Bus ay isang 32-bit na malawak na multi-master bus na perpekto para sa pagsasama-sama ng mga peripheral at panlabas na memorya sa core ng processor ng MicroBlaze.

On-chip Peripheral Bus Peripheral

Ang MicroBlaze hardware system ay kinukumpleto ng OPB peripheral upang magbigay ng iba't ibang function tulad ng Watchdog Timer o Timebase, General purpose Timer o Counter, IC (Interrupt Controller), iba't ibang controllers tulad ng SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, General purpose I/O, UART 16450/550 at Ethernet 10/100 MAC. Bilang karagdagan, maaari rin kaming magdagdag at tukuyin ang mga peripheral pangunahin para sa mga custom na function, kung hindi, isang interface sa isang disenyo na umiiral sa FPGA.

Microblaze Instruction Set

Ang mga set ng pagtuturo ng Microblaze ay arithmetic, logic, branch, load/store, at iba pa. Ang laki ng lahat ng mga tagubilin ay naayos. Hindi hihigit sa 3-rehistro ang maaaring ibigay bilang mga operand. Kasama sa Microblaze ang dalawang format ng pagtuturo Uri A at Uri B na ipinapakita sa ibaba.

Ang Type A na format ng pagtuturo ay pangunahing ginagamit para sa mga tagubilin sa pagpaparehistro-rehistro. Kaya kabilang dito ang opcode, iisang destinasyon at dalawang source register. Pangunahing ginagamit ang format ng pagtuturo ng Type B para sa mga tagubiling kaagad sa pagpaparehistro na kinabibilangan ng opcode, iisang destinasyon, at mga rehistro ng iisang pinagmulan. at isang 16-bit na agarang halaga ng pinagmulan.

  Mga Format ng Pagtuturo
Mga Format ng Pagtuturo

Sa dalawang format ng pagtuturo sa itaas, ang opcode ay isang operation code, ang Rd ay isang destination register na naka-encode ng 5-bits, ang Ra & Rb ay mga source register kung saan ang bawat isa ay naka-encode ng 5-bits at ang Immediate ay isang 16-bit na halaga.

Mga Tagubilin sa Arithmetic

Ang uri A at Uri B na mga tagubilin sa aritmetika ay ibinigay sa ibaba.

Uri A

ADD Rd, Ra, Rb

idagdag

Rd = Ra+Rb, Carry flag apektado

ADD K Rd, Ra, Rb

Magdagdag at panatilihing dalhin

Rd = Ra+Rb, Hindi apektado ang Carry flag

RSUB Rd, Ra, Rb

Baliktarin ang pagbabawas

Rd = R-Rb, Carry flag ay hindi apektado

Uri B

ADD I Rd, Ra, Imm

idagdag kaagad

Rd = Ra+signExtend32 (Imm)

Idagdag ang IK Rd, Ra, Imm

idagdag kaagad at panatilihing dalhin

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

baligtarin ang pagbabawas ng kagyat

Rd = Ra+ signExtend32 (Imm) -Ra

SRA Rd, Ra

arithmetic shift pakanan

Rd = (Ra>>1)

Mga Tagubilin sa Lohika

Ang uri A at Uri B na mga tagubilin sa lohika ay ibinigay sa ibaba.

Uri A

O Rd, Ra, Rb

Lohikal o

Rd = Ra| Rb

AT Rd,Ra,Rb

Lohikal na idagdag

Rd = Ra & Rb
XOR Rd, Ra, Rb

Logoical xor

Rd = Rb ^ Rb

ANDN Rd, Ra, Rb

Logical at hindi

Rd = Ra & (Rb)

Uri B

ORI  Rd, Ra, Imm

lohikal O may agarang

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

lohikal AT may kagyat

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

logoical XOR na may agarang

Rd = Ra ^ signExtend32 (Imm)

ANDNI Rd, Ra, Imm

Lohikal AT HINDI na may kagyat

Rd = Ra & (signExtend32 (Imm))

Mga Tagubilin ng Sangay- Walang kondisyon

Baguhin ang rehistro ng Counter ng Programa

BRID  Imm

sangay kaagad na may kagyat na pagkaantala

PC = PC+ signExtend32 (Imm)

payagan ang pagkaantala sa pagpapatupad ng slot

BRLID Rd, Imm

branch at link kaagad na may agarang pagkaantala (function call)

Rd = PC

PC = PC+& signExtend32 (Imm)

payagan ang pagkaantala sa pagpapatupad ng slot

RTSD  Ra, Imm

bumalik mula sa subroutine

PC = Ra + signExtend32 (Imm)

payagan ang pagkaantala sa pagpapatupad ng slot

RTID Ra, Imm

bumalik mula sa pagkagambala

PC = Ra + signExtend32 (Imm)

payagan ang pagkaantala sa pagpapatupad ng slot

itakda ang interrupt enable sa MSR

Mga Tagubilin ng Sangay- Walang kondisyon1

Baguhin ang rehistro ng Program Counter kapag nasiyahan ang isang kundisyon

BEQI Ra, Imm

sangay kung pantay

PC = PC+ signExtend32 (Imm)

Kung Ra = = 0

MASH Ra, Imm

sangay kung hindi pantay

Rd = PC

PC = PC+& signExtend32 (Imm)

Kung si Ra! = 0

Mga Tagubilin ng Sangay- Walang kondisyon2

Baguhin ang rehistro ng Program Counter kapag nasiyahan ang isang kundisyon

BLTI  Ra, Imm

sangay kung mas mababa sa

PC = PC+ signExtend32 (Imm)

Kung Ra < 0

BLEI Ra, Imm

sangay kung mas mababa katumbas ng

Rd = PC

PC = PC+& signExtend32 (Imm)

Kung Ra!< = 0

BGTI Ra, Imm

sangay kung mas malaki kaysa

PC = PC+ signExtend32 (Imm)

Kung Ra!> 0

BGEI Ra, Imm

sangay kung mas malaki ang katumbas ng

PC = PC+signExtend32 (Imm)

Kung Ra!>= 0

Mga Tagubilin sa Pag-load/Pag-imbak -Uri A

LW Rd, Ra, Rb

Mag-load ng salita

Address = Ra+Rb

Rd = *Address

SW Rd, Ra, Rb

Mag-imbak ng  salita

Address – Ra+Rb

*Address = Rd

Uri B

LWI  Rd, Ra, Imn

Mag-load ng salita kaagad

Address = Ra + signExtend32 (Imm)

Rd = *Address

SW Rd, Ra, Imm

Mag-imbak ng  salita kaagad

Address = Ra + signExtend32 (Imm)

*Address = Rd

Iba pang mga Tagubilin

IMM, Imm

kaagad

Palawakin ang Imm ng isang naunang uri ng pagtuturo sa 32-bits.
MFS Rd, Sa

Lumipat mula sa rehistro ng espesyal na layunin

Rd = Sa

Sa- special purpose register, source operand

MTS Sd, Ra

Lumipat sa rehistro ng espesyal na layunin

Sd = Ra

Sd – rehistro ng espesyal na layunin, operand ng patutunguhan

Nagrerehistro

Ang arkitektura ng MicroBlaze processor ay ganap na orthogonal na kinabibilangan ng 32-bit general purpose register at 32-bit na special purpose register tulad ng Program Counter & Machine Status Register.

Arkitektura ng Pipeline

Gumagamit ang MicroBlaze ng 3-stage na arkitektura ng pipeline kabilang ang pagkuha, pag-decode, at kumpletong mga yugto. Awtomatikong, ang pagpapasa ng data, mga sangay at pipeline stall ay tinutukoy sa loob ng hardware.

Mag-load o Arkitektura ng Tindahan

Sinusuportahan ng MicroBlaze ang memorya sa tatlong laki ng data 8 bits (Byte), 16 bits (Halfword) at 32 bits (Word). Kaya, ang mga pag-access sa memorya ay palaging nakahanay sa laki ng data. Ito ay isang Big-Endian processor na gumagamit ng address ng Big-Endian address pati na rin ang pag-label ng mga convention sa sandaling ma-access ang memorya.

Nakakaabala

Kapag nagkaroon ng interrupt, tatapusin ng processor na ito ang kasalukuyang execution para pamahalaan ang interrupt request sa pamamagitan ng branching para matakpan ang vector address at iimbak ang instruction address na kailangang isagawa. Ihihinto ng processor na ito ang mga pagkaantala sa hinaharap sa pamamagitan ng pag-clear sa flag ng IE (Interrupt Enable) sa loob ng MSR (Machine Status Register).

Paano Gumagana ang Microblaze?

Sinusuportahan ng processor ng MicroBlaze ang 32-bit na lapad ng bus at ang core ng processor na ito ay isang RISC-based na engine na may kasamang register file batay sa 32-bit LUT RAM sa pamamagitan ng magkahiwalay na mga tagubilin para sa memorya at pag-access ng data.
Sinusuportahan lang ng processor na ito ang parehong on-chip BlockRAM at external memory. Katulad ng IBM PowerPC; lahat ng peripheral ay gumagamit ng katulad na CoreConnect OPB bus kaya; ang mga peripheral ng processor ay mahusay na tumugma sa PowerPC sa Virtex-II Pro.

Ang processor ng MicroBlaze ay naghahatid ng kumpletong kakayahang umangkop upang piliin ang kumbinasyon ng mga tampok ng memorya, peripheral at interface na magbibigay sa iyo ng tumpak na sistema na kailangan mo sa isang FPGA na may mas mura.

Pagkakaiba ng B/W Microblaze Vs Risc-V

Ang pagkakaiba sa pagitan ng MicroBlaze at RISC v isama ang mga sumusunod.

Microblaze

Risc-V

Ito ay isang malambot na microprocessor core na pangunahing idinisenyo para sa Xilinx FPGA.

Ang RISC-V ay isang set ng pagtuturo na arkitektura na nakaugat sa mga prinsipyo ng RISC.

Gumagamit ito ng arkitektura ng Harvard RISC. Gumagamit ito ng arkitektura ng set ng pagtuturo.
Ang lisensya nito ay pagmamay-ari (Xilinx) Ang lisensya nito ay open source.
Ang lalim ng pipeline ay 3 o 5. Ang lalim ng pipeline ay 5.
Ang pagganap nito ay 280 DMIPs. Ang pagganap nito ay 250 DMIPs.
Ang bilis nito ay 235 MHz. Ang bilis nito ay 250 MHz.
Mayroon itong 1027 LUTs. Mayroon itong 4125 LUTs.
Ang pagpapatupad ng teknolohiyang ginamit ay Xilinx FPGA. Ang pagpapatupad ng teknolohiyang ginamit ay FPGA/ASIC.

Mga Bentahe ng Microblaze

Ang mga pakinabang ng MicroBlaze isama ang mga sumusunod.

  • Ito ay matipid.
  • Ito ay lubos na maisasaayos.
  • Mataas ang performance nito kumpara sa ARM.
  • Ito ay sinusuportahan ng isang naka-embed na development kit.
  • Ito ay isang malambot microprocessor core.
  • Upang matulungan kang mabilis na ayusin ang iyong application, ang processor na ito ay may kasamang tatlong nakapirming configuration na nauugnay sa mga kilalang klase ng processor na microcontroller, real-time, at application processor.

Mga Aplikasyon ng Microblaze

Ang mga aplikasyon ng MicroBlaze isama ang mga sumusunod.

  • Ang processor na ito ay nakakatugon sa maraming iba't ibang mga kinakailangan sa application tulad ng Industrial, Automotive, Medikal at Consumer, atbp.
  • Ang mga application ng MicroBlaze ay mula sa mga simpleng state machine batay sa software hanggang sa mga kumplikadong controller na ginagamit sa mga naka-embed na application o mga appliances na nakabatay sa Internet.
  • Ito ay na-optimize para sa mga naka-embed na application tulad ng kontrol sa industriya, automation ng opisina at automotive.
  • Ang MicroBlaze ay may kakayahang makipag-ugnayan sa isang malaking hanay ng mga peripheral upang magkasya sa mga medium-scale na aplikasyon.
  • Ang malambot na katangian ng processor na ito ay ginagawa itong nako-customize para sa iba't ibang mga application kung saan ang mga designer ay maaaring makipagpalitan ng mga tampok para sa laki upang matugunan ang mga layunin sa presyo at pagganap para sa mga medikal, automotive, pang-industriya at seguridad na mga aplikasyon.

Kaya, ito ay tungkol sa lahat isang pangkalahatang-ideya ng Microblaze processor. Ito ay ganap na itinampok, 32-bit programmable RISC soft processor core. Ang processor na ito ay nakakatugon sa iba't ibang mga kinakailangan sa loob ng iba't ibang larangan tulad ng consumer, medikal, industriyal, automotive at mga merkado ng imprastraktura ng komunikasyon. Ito ay lubos na na-configure, kaya ginagamit bilang ang naka-embed na processor o microcontroller sa loob ng mga FPGA kung hindi man ay tulad ng isang co-processor para sa ARM. Narito ang isang katanungan para sa iyo, ano ang FPGA?