Ce este Microblaze Processor: Arhitectură, lucru și aplicațiile sale

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Procesorul MicroBlaze a fost dezvoltat în 2002 pentru a integra mai multe caracteristici complicate pentru a satisface cererea nouă și în creștere a pieței. Așadar, procesorul MicroBlaze este un element esențial în portofoliul Low-End al Xilinx pentru a permite o dezvoltare mai rapidă a sistemului care conține Artix®-7 FPGA-uri , SoC-uri Spartan®-6, Zynq®-7000 AP. Acest procesor este extrem de configurabil, astfel încât poate fi folosit ca procesor sau microcontroler încorporat în cadrul FPGA-urilor și, de asemenea, folosit ca co-procesor în SoC-urile Zynq-7000 AP bazate pe ARM Cortex-A9. Acest articol oferă scurte informații despre procesor MicroBlaze – arhitectura si lucrul cu aplicatii.


Ce este procesorul Microblaze?

Microprocesorul moale care este proiectat în principal pentru FPGA-urile Xilinx este cunoscut sub numele de procesor MicroBlaze. Acest procesor este pur și simplu implementat în memoria de uz general și structura logică a FPGA-urilor Xilinx. Acest procesor este similar cu arhitectura DLX bazată pe RISC și are un sistem de interconectare flexibil, astfel încât să accepte diferite aplicații încorporate. Magistrala I/O principală și interconectarea AXI a MicroBlaze este o magistrală de tranzacții mapată în memorie cu o facilitate master-slave.



MicroBlaze utilizează o magistrală LMB dedicată pentru a accesa memoria locală și oferă stocare rapidă pe cip. Multe părți ale acestui procesor pot fi configurate de utilizator, cum ar fi dimensiunea cache-ului, adâncimea unității de gestionare a memoriei conductei, periferice încorporate și interfețe de magistrală.

Caracteristici Microblaze

The caracteristicile Microblaz e includ următoarele. Are 32 de registre de uz general.



  • Are cuvinte de instrucțiuni de 32 de biți, inclusiv 2 moduri de adresare și 3 operanzi.
  • Autobuzul de adrese este pe 32 de biți.
  • Are o conductă în 3 trepte sau o conductă în 5 trepte.
  • O unitate bloc ALU cu un schimbător.
  • Arhitectura Harvard include date pe 32 de biți și magistrală de adrese.
  • Interfață de date și instrucțiuni LMB sau magistrala de memorie locală.
  • Interfețele de flux AX14 și AX14.
  • Unitate în virgulă mobilă și unitate de gestionare a memoriei.
  • Suportă lockstep.
  • Interfață de depanare și urmărire.

Arhitectura Microbaze

Diagrama bloc a procesorului MicroBlaze este prezentată mai jos. Acest procesor MicroBlaze este extrem de personalizabil și acceptă peste 70 de opțiuni de design. Această arhitectură prezintă caracteristici hardware permanente, precum și opțiuni configurabile, cum ar fi cache de instrucțiuni sau date, unitatea de gestionare a memoriei, unitatea de virgulă mobilă etc.

Un sistem incorporat asamblat în jurul unui procesor MicroBlaze include în principal MicroBlaze Soft Processor Core, memorie locală pe cip, interconexiuni standard de magistrală și periferice OPB (On-chip Peripheral Bus). Un sistem de procesor MicroBlaze variază în principal de la un nucleu de procesor cu o memorie locală până la un sistem mare care include mai multe MicroBlaze procesoare , memorie externă și multe periferice OPB.

  Arhitectura procesorului Microblaze
Arhitectura procesorului Microblaze

Miez de procesor moale

Miezul moale al procesorului MicroBlaze este esențial pentru sistemul încorporat MicroBlaze. Acesta este un procesor RISC pe 32 de biți foarte rapid și eficient, care are următoarele caracteristici.

  • Setul de instrucțiuni este ortogonal.
  • Autobuze separate de date și instrucțiuni.
  • Registre de uz general pe 32 de biți.
  • Are un schimbător complet opțional pe 32 de biți.
  • Interfețe încorporate pentru OCM rapidă sau memorie pe cip și OPB (On-chip Peripheral Bus) standard industrial IBM.

Implementările în Virtex-II și dispozitivele ulterioare acceptă o mulțime de hardware.

Memorie locală pe cip

Memoria sincronă este o memorie locală care este utilizată în principal pentru a permite blocarea RAM pe cip.

Interconexiuni standard de autobuz

Interfețele de magistrală de pe partea de instrucțiuni și date includ o interfață cu memoria locală numită LMB (Local Memory Bus) și o interfață cu magistrala periferică On-chip a IBM. Așa că putem proiecta sisteme care se lipesc strict de arhitectura Harvard, altfel, pentru a partaja resurse, putem utiliza un singur OPB în combinație printr-un arbitru de autobuz.

Autobuzul de memorie local oferă o intrare asigurată într-un singur ciclu pentru RAM bloc pe cip. Acesta este un protocol de magistrală foarte eficient, simplu și cu un singur master și este perfect pentru interfațarea memoriei locale rapide. OPB sau On-chip Peripheral Bus este o magistrală multi-master lată de 32 de biți, care este perfectă pentru unirea perifericelor și memoriei exterioare la nucleul procesorului MicroBlaze.

Periferice de magistrală periferică pe cip

Sistemul hardware MicroBlaze este completat de periferice OPB pentru a oferi diferite funcții precum Watchdog Timer sau Timebase, General purpose Timer sau Counters, IC (Interrupt Controller), diferite controlere precum SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, I/O de uz general, UART 16450/550 și Ethernet 10/100 MAC. În plus, putem adăuga și defini periferice în principal pentru funcții personalizate, în caz contrar, o interfață la un design care există în FPGA.

Set de instrucțiuni Microblaze

Seturile de instrucțiuni Microblaze sunt aritmetice, logice, ramuri, încărcare/stocare și altele. Dimensiunea tuturor instrucțiunilor este fixă. Cel mult 3 registre pot fi date ca operanzi. Microblaze include două formate de instrucțiuni de tip A și de tip B, care sunt prezentate mai jos.

Formatul de instrucțiuni de tip A este utilizat în principal pentru instrucțiuni de înregistrare-registru. Deci include opcode, o singură destinație și două registre sursă. Formatul de instrucțiuni de tip B este utilizat în principal pentru instrucțiuni imediate de registru, care includ opcode, destinație unică și registre cu sursă unică și o sursă de valoare imediată de 16 biți.

  Formate de instrucțiuni
Formate de instrucțiuni

În cele două formate de instrucțiuni de mai sus, opcode este un cod de operare, Rd este un registru de destinație care este codificat cu 5 biți, Ra și Rb sunt registre sursă în care fiecare codificat cu 5 biți și Imediat este o valoare de 16 biți.

Instructiuni aritmetice

Instrucțiunile aritmetice de tip A și de tip B sunt date mai jos.

Tip A

ADD Rd, Ra, Rb

adăuga

Rd = Ra+Rb, flag Carry afectat

ADD K Rd, Ra, Rb

Adăugați și păstrați transportul

Rd = Ra+Rb, flag Carry nu este afectat

RSUB Rd, Ra, Rb

Scăderea inversă

Rd = R-Rb, flag Carry nu este afectat

Tip B

ADD I Rd, Ra, Imm

adauga imediat

Rd = Ra+signExtend32 (Imm)

ADD IK Rd, Ra, Imm

adăugați imediat și păstrați transportul

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

scădere inversă cu imediată

Rd = Ra+ semnExtend32 (Imm) -Ra

SRA Rd, Ra

deplasare aritmetică la dreapta

Rd = (Ra>>1)

Instrucțiuni logice

Instrucțiunile logice de tip A și de tip B sunt prezentate mai jos.

Tip A

SAU Rd, Ra, Rb

logic sau

Rd = Ra| Rb

ȘI Rd,Ra,Rb

Adăugarea logică

Rd = Ra și Rb
XOR Rd, Ra, Rb

Logoical xor

Rd = Rb ^ Rb

ANDN Rd, Ra, Rb

Logic și nu

Rd = Ra și (Rb)

Tip B

ORI  Rd, Ra, Imm

logic SAU cu imediat

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

logic ŞI cu imediată

Rd = Ra și semnExtend32 (Imm)
XORI  Rd, Ra, Imm

XOR logoic cu imediat

Rd = Ra ^ signExtend32 (Imm)

ANDNI Rd, Ra, Imm

Logic ȘI NU cu imediată

Rd = Ra & (semnExtend32 (Imm))

Instrucțiuni de filială - necondiționat

Modificați registrul Program Counter

MIREASA  Imm

ramificație imediată cu întârziere imediată

PC = PC+ semnExtend32 (Imm)

permite execuția slotului de întârziere

BRLID Rd, Imm

sucursală și legătură imediată cu întârziere imediată (apel de funcție)

Rd = PC

PC = PC+& signExtend32 (Imm)

permite execuția slotului de întârziere

RTSD  Ra, Imm

întoarcere din subrutină

PC = Ra + semnExtend32 (Imm)

permite execuția slotului de întârziere

RTID Ra, Imm

revenire de la întrerupere

PC = Ra + semnExtend32 (Imm)

permite execuția slotului de întârziere

setați activarea întreruperii în MSR

Instrucțiuni de filială - Necondiționat1

Schimbați registrul Program Counter când o condiție este îndeplinită

BEQI Ra, Imm

ramură dacă este egală

PC = PC+ semnExtend32 (Imm)

Dacă Ra = = 0

MASH Ra, Imm

ramură dacă nu este egală

Rd = PC

PC = PC+& signExtend32 (Imm)

Dacă Ra! = 0

Instrucțiuni de filială- Necondiționat2

Schimbați registrul Program Counter când o condiție este îndeplinită

BLTI  Ra, Imm

ramură dacă este mai mică decât

PC = PC+ semnExtend32 (Imm)

Dacă Ra < 0

BLEI Ra, Imm

ramură dacă mai mică este egală cu

Rd = PC

PC = PC+& signExtend32 (Imm)

Dacă Ra!< = 0

BGTI Ra, Imm

ramură dacă este mai mare decât

PC = PC+ semnExtend32 (Imm)

Dacă Ra!> 0

BGEI Ra, Imm

ramură dacă mai mare egală decât

PC = PC+semnExtend32 (Imm)

Dacă Ra!>= 0

Instrucțiuni de încărcare/depozitare - tip A

LW Rd, Ra, Rb

Încărcați cuvântul

Adresa = Ra+Rb

Rd = *Adresa

SW Rd, Ra, Rb

Păstrați  cuvântul

Adresa – Ra+Rb

*Adresa = Rd

Tip B

LWI  Rd, Ra, Imn

Încărcați cuvântul imediat

Adresă = Ra + signExtend32 (Imm)

Rd = *Adresa

SW Rd, Ra, Imm

Păstrați  cuvântul imediat

Adresă = Ra + signExtend32 (Imm)

*Adresa = Rd

Alte Instructiuni

IMM, Imm

imediat

Extindeți Imm-ul unei instrucțiuni precedente de tip B la 32 de biți.
MFS Rd, Sa

Treceți din registrul cu destinații speciale

Rd = Sa

Sa- registru cu scop special, operand sursa

MTS Sd, Ra

Treceți la registrul cu destinații speciale

Sd = Ra

Sd – registru cu destinație specială, operand destinație

Registrele

Arhitectura procesorului MicroBlaze este complet ortogonală, care include registre de uz general de 32 de biți și registre de scop special de 32 de biți, cum ar fi Program Counter și Machine Status Register.

Arhitectura conductelor

MicroBlaze utilizează o arhitectură de conducte în 3 etape, inclusiv etapele de preluare, decodare și completare. În mod automat, redirecționarea datelor, ramurile și blocarea conductei sunt determinate în hardware.

Încărcați sau stocați arhitectura

MicroBlaze acceptă memorie în trei dimensiuni de date 8 biți (octeți), 16 biți (jumătate de cuvânt) și 32 de biți (cuvânt). Deci, accesările la memorie sunt întotdeauna aliniate la dimensiunea datelor. Acesta este un procesor Big-Endian care folosește adresa adresei Big-Endian, precum și convențiile de etichetare odată ce accesează memoria.

întreruperi

Odată ce are loc o întrerupere, atunci acest procesor va încheia execuția actuală pentru a gestiona cererea de întrerupere prin ramificare pentru a întrerupe adresa vectorială și va stoca adresa instrucțiunii care trebuie executată. Acest procesor va opri întreruperile viitoare prin ștergerea steagului IE (Interrupt Enable) din MSR (Machine Status Register).

Cum funcționează Microblaze?

Procesorul MicroBlaze acceptă lățimea magistralei de 32 de biți, iar acest nucleu de procesor este un motor bazat pe RISC care include un fișier de registru bazat pe RAM LUT de 32 de biți prin instrucțiuni separate pentru acces la memorie și date.
Acest procesor acceptă pur și simplu atât BlockRAM pe cip, cât și memorie externă. Similar cu IBM PowerPC; toate perifericele utilizează magistrala similară CoreConnect OPB, deci; perifericele procesorului se potrivesc bine cu PowerPC pe Virtex-II Pro.

Procesorul MicroBlaze oferă o flexibilitate completă de a alege combinația de memorie, periferice și caracteristici de interfață care vă vor oferi sistemul precis de care aveți nevoie pentru un singur FPGA cu costuri mai mici.

Diferența B/N Microblaze vs Risc-V

The diferența dintre MicroBlaze și RISC v includ următoarele.

Microblaze

Risc-V

Este un nucleu de microprocesor moale conceput în principal pentru Xilinx FPGA.

RISC-V este o arhitectură de set de instrucțiuni bazată pe principiile RISC.

Utilizează arhitectura Harvard RISC. Utilizează arhitectura setului de instrucțiuni.
Licența sa este proprietară (Xilinx) Licența sa este open source.
Adâncimea conductei este de 3 sau 5. Adâncimea conductei este de 5.
Performanța sa este de 280 DMIP. Performanța sa este de 250 DMIP.
Viteza sa este de 235 MHz. Viteza sa este de 250 MHz.
Are 1027 LUT-uri. Are 4125 LUT-uri.
Implementarea tehnologiei utilizate este Xilinx FPGA. Implementarea tehnologiei utilizate este FPGA/ASIC.

Avantajele Microblaze

The avantajele MicroBlaze includ următoarele.

  • Este economic.
  • Este foarte configurabil.
  • Performanța sa este ridicată în comparație cu ARM.
  • Este susținut de un kit de dezvoltare încorporat.
  • Este un moale microprocesor miez.
  • Pentru a vă ajuta să vă aranjați rapid aplicația, acest procesor include trei configurații fixe care sunt legate de binecunoscutele clase de procesoare microcontroller, în timp real și procesor de aplicație.

Aplicații Microblaze

The aplicații ale MicroBlaze includ următoarele.

  • Acest procesor îndeplinește multe cerințe diferite ale aplicațiilor, cum ar fi industriale, auto, medicale și de consum etc.
  • Aplicațiile MicroBlaze variază de la simple mașini de stat bazate pe software până la controlere complexe utilizate în aplicații încorporate sau dispozitive bazate pe Internet.
  • Este optimizat pentru aplicații încorporate, cum ar fi controlul industrial, automatizarea de birou și auto.
  • MicroBlaze este capabil să comunice cu un set mare de periferice pentru a se potrivi în aplicații la scară medie.
  • Natura moale a acestui procesor îl face personalizabil pentru diferite aplicații în care designerii pot schimba caracteristici cu dimensiune pentru a îndeplini obiectivele de preț și performanță pentru aplicații medicale, auto, industriale și de securitate.

Astfel, despre asta este vorba o privire de ansamblu asupra Microblaze procesor. Acesta este un nucleu de procesor soft RISC programabil pe 32 de biți cu caracteristici complete. Acest procesor îndeplinește diferite cerințe în diferite domenii, cum ar fi piețele de consum, medical, industrial, auto și infrastructurii de comunicații. Este extrem de configurabil, deci folosit ca procesor sau microcontroler încorporat în FPGA-uri, altfel ca un co-procesor pentru ARM. Iată o întrebare pentru tine, ce este FPGA?