Was ist ein Microblaze-Prozessor: Architektur, Arbeitsweise und seine Anwendungen

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





Der MicroBlaze-Prozessor wurde 2002 entwickelt, um mehrere komplizierte Funktionen zu integrieren, um sowohl neuen als auch wachsenden Marktanforderungen gerecht zu werden. Daher ist der MicroBlaze-Prozessor ein wesentliches Element im Low-End-Portfolio von Xilinx, um eine schnellere Systementwicklung zu ermöglichen, die Artix®-7 enthält FPGAs , Spartan®-6, Zynq®-7000 AP SoCs. Dieser Prozessor ist extrem konfigurierbar, sodass er als eingebetteter Prozessor oder Mikrocontroller in FPGAs und auch als Co-Prozessor in den Zynq-7000-AP-SoCs auf Basis von ARM Cortex-A9 verwendet werden kann. Dieser Artikel enthält kurze Informationen zu MicroBlaze-Prozessor – Architektur und Arbeiten mit Anwendungen.


Was ist ein Microblaze-Prozessor?

Der Soft-Mikroprozessor, der hauptsächlich für FPGAs von Xilinx entwickelt wurde, ist als MicroBlaze-Prozessor bekannt. Dieser Prozessor wird einfach innerhalb der universellen Speicher- und Logikstruktur der FPGAs von Xilinx implementiert. Dieser Prozessor ähnelt der auf RISC basierenden DLX-Architektur und verfügt über ein flexibles Verbindungssystem, sodass er verschiedene eingebettete Anwendungen unterstützt. Der Haupt-E/A-Bus und die AXI-Verbindung des MicroBlaze ist ein speicherabgebildeter Transaktionsbus mit einer Master-Slave-Einrichtung.



MicroBlaze verwendet einen dedizierten LMB-Bus für den Zugriff auf den lokalen Speicher und bietet schnellen On-Chip-Speicher. Viele Teile dieses Prozessors können vom Benutzer konfiguriert werden, wie z. B. die Größe des Caches, die Tiefe der Pipeline-Speicherverwaltungseinheit, eingebettete Peripheriegeräte und Busschnittstellen.

Microblaze-Funktionen

Das Funktionen von Microblaz Dazu gehören die folgenden. Es verfügt über 32 Allzweckregister.



  • Es verfügt über 32-Bit-Befehlswörter, einschließlich 2 Adressierungsmodi und 3 Operanden.
  • Der Adressbus ist 32-Bit.
  • Es hat eine 3-stufige Pipeline oder eine 5-stufige Pipeline.
  • Eine ALU-Blockeinheit mit Schalthebel.
  • Die Harvard-Architektur umfasst einen 32-Bit-Daten- und Adressbus.
  • Datenschnittstelle & LMB oder lokaler Speicherbusbefehl.
  • AX14- und AX14-Stream-Schnittstellen.
  • Gleitkommaeinheit und Speicherverwaltungseinheit.
  • Es unterstützt Lockstep.
  • Debug & Trace-Schnittstelle.

Microbaze-Architektur

Das Blockdiagramm des MicroBlaze-Prozessors ist unten dargestellt. Dieser MicroBlaze-Prozessor ist extrem anpassbar und unterstützt über 70 Designoptionen. Diese Architektur zeigt permanente Hardwarefunktionen sowie konfigurierbare Optionen wie den Befehls- oder Datencache, die Speicherverwaltungseinheit, die Gleitkommaeinheit usw.

Ein Eingebettetes System die um einen MicroBlaze-Prozessor herum aufgebaut sind, umfassen hauptsächlich MicroBlaze Soft Processor Core, On-Chip Local Memory, Standard Bus Interconnects und OPB Peripherals (On-Chip Peripheral Bus). Ein MicroBlaze-Prozessorsystem reicht hauptsächlich von einem Prozessorkern durch einen lokalen Speicher bis zu einem großen System, das mehrere MicroBlaze umfasst Prozessoren , externer Speicher und viele OPB-Peripheriegeräte.

  Microblaze-Prozessorarchitektur
Microblaze-Prozessorarchitektur

Weicher Prozessorkern

Der Softprozessorkern von MicroBlaze ist das Herzstück des MicroBlaze-Embedded-Systems. Dies ist ein sehr schneller und effizienter 32-Bit-RISC-Prozessor mit den folgenden Merkmalen.

  • Der Befehlssatz ist orthogonal.
  • Separate Daten- und Befehlsbusse.
  • 32-Bit-Universalregister.
  • Es verfügt über einen optionalen vollständigen 32-Bit-Barrel-Shifter.
  • Integrierte Schnittstellen zu schnellem OCM oder On-Chip-Speicher und IBMs Industriestandard OPB (On-Chip Peripheral Bus).

Implementierungen innerhalb von Virtex-II und späteren Geräten unterstützen eine Vielzahl von Hardware.

Lokaler On-Chip-Speicher

Der synchrone Speicher ist ein lokaler Speicher, der hauptsächlich verwendet wird, um On-Chip-Block-RAM zu ermöglichen.

Standard-Busverbindungen

Die Busschnittstellen auf der Befehls- und Datenseite umfassen eine Schnittstelle zum lokalen Speicher, die LMB (Local Memory Bus) genannt wird, und eine Schnittstelle zum On-Chip Peripheral Bus von IBM. So können wir Systeme entwerfen, die sich strikt an die Harvard-Architektur halten, andernfalls können wir, um Ressourcen gemeinsam zu nutzen, einen einzelnen OPB innerhalb einer Kombination durch einen Bus-Arbiter verwenden.

Der lokale Speicherbus bietet einen gesicherten Single-Cycle-Eingang für On-Chip-Block-RAM. Dies ist ein sehr effizientes, einfaches Single-Master-Busprotokoll, das sich perfekt für die Anbindung schneller lokaler Speicher eignet. Der OPB oder On-Chip Peripheral Bus ist ein 32 Bit breiter Multi-Master-Bus, der sich perfekt dafür eignet, Peripheriegeräte und externen Speicher mit dem Kern des MicroBlaze-Prozessors zu vereinen.

On-Chip-Peripheriebus-Peripheriegeräte

Das MicroBlaze-Hardwaresystem wird durch OPB-Peripheriegeräte vervollständigt, um verschiedene Funktionen wie Watchdog-Timer oder Zeitbasis, Allzweck-Timer oder -Zähler, IC (Interrupt Controller), verschiedene Controller wie SRAM, Flash-Speicher, ZBT-Speicher, BRAM, DDR, SDRAM, UART Lite bereitzustellen , SPI, I2C, Mehrzweck-E/A, UART 16450/550 und Ethernet 10/100 MAC. Darüber hinaus können wir Peripheriegeräte hauptsächlich für benutzerdefinierte Funktionen hinzufügen und definieren, ansonsten eine Schnittstelle zu einem Design, das im FPGA vorhanden ist.

Microblaze-Anweisungssatz

Microblaze-Befehlssätze sind Arithmetik, Logik, Verzweigung, Laden/Speichern und andere. Die Größe aller Anweisungen ist festgelegt. Als Operanden können maximal 3 Register angegeben werden. Microblaze enthält zwei Anweisungsformate Typ A und Typ B, die unten gezeigt werden.

Das Befehlsformat Typ A wird hauptsächlich für Register-Register-Befehle verwendet. Es enthält also den Opcode, ein einziges Ziel und zwei Quellregister. Das Befehlsformat Typ B wird hauptsächlich für Register-Immediate-Befehle verwendet, die Opcode-, Einzelziel- und Einzelquellenregister sowie eine 16-Bit-Direktwertquelle enthalten.

  Unterrichtsformate
Unterrichtsformate

In den beiden obigen Befehlsformaten ist der Opcode ein Operationscode, Rd ist ein Zielregister, das mit 5 Bit codiert ist, Ra und Rb sind Quellregister, wobei jedes mit 5 Bit codiert ist, und Immediate ist ein 16-Bit-Wert.

Arithmetische Anweisungen

Die Arithmetikbefehle vom Typ A und Typ B sind unten angegeben.

Tippe A

Rd, Ra, Rb HINZUFÜGEN

hinzufügen

Rd = Ra+Rb, Carry-Flag betroffen

HINZUFÜGEN K Rd, Ra, Rb

Hinzufügen und weitertragen

Rd = Ra+Rb, Carry-Flag nicht betroffen

RSUB Rd, Ra, Rb

Rückwärts subtrahieren

Rd = R-Rb, Carry-Flag nicht betroffen

Typ B

HINZUFÜGEN I Rd, Ra, Imm

sofort hinzufügen

Rd = Ra+signExtend32 (Imm)

HINZUFÜGEN IK Rd, Ra, Imm

sofort hinzufügen und weitertragen

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

umgekehrt subtrahieren mit unmittelbar

Rd = Ra+ signExtend32 (Imm)-Ra

SRA Rd, Ra

arithmetische Verschiebung nach rechts

Rd = (Ra>>1)

Logikanweisungen

Die Logikbefehle vom Typ A und Typ B sind unten angegeben.

Tippe A

ODER Rd, Ra, Rb

Logisch bzw

Rd = Ra| Rb

UND Rd, Ra, Rb

Logische Ergänzung

Rd = Ra & Rb
XOR Rd, Ra, Rb

Logisches xor

Rd = Rb ^ Rb

ANDN Rd, Ra, Rb

Logisch und nicht

Rd = Ra & (Rb)

Typ B

ORI Rd, Ra, Imm

logisches ODER mit unmittelbarem

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

logisches UND mit unmittelbar

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

logisches XOR mit unmittelbarem

Rd = Ra ^ signExtend32 (Imm)

ANDNI Rd, Ra, Imm

Logisch UND NICHT mit Sofort

Rd = Ra & (signExtend32 (Imm))

Verzweigungsanweisungen – Unbedingt

Ändern Sie das Programmzählerregister

BRID  Imm

Filiale sofort mit sofortiger Verzögerung

PC = PC+ signExtend32 (Imm)

Verzögerungsschlitzausführung zulassen

BRLID Rd, Imm

sofort verzweigen und verbinden mit sofortiger Verzögerung (Funktionsaufruf)

Rd = PC

PC = PC+& signExtend32 (Imm)

Verzögerungsschlitzausführung zulassen

RTSD Ra, Imm

Rückkehr vom Unterprogramm

PC = Ra + signExtend32 (Imm)

Verzögerungsschlitzausführung zulassen

RTID Ra, Imm

Rückkehr vom Interrupt

PC = Ra + signExtend32 (Imm)

Verzögerungsschlitzausführung zulassen

Interruptfreigabe in MSR setzen

Verzweigungsbefehle – unbedingt1

Ändern Sie das Programmzählerregister, wenn eine Bedingung erfüllt ist

BEQI Ra, Imm

Verzweigung falls gleich

PC = PC+ signExtend32 (Imm)

Wenn Ra = = 0

BREI Ra, Imm

Verzweigung, wenn nicht gleich

Rd = PC

PC = PC+& signExtend32 (Imm)

Wenn Ra! = 0

Verzweigungsbefehle – unbedingt2

Ändern Sie das Programmzählerregister, wenn eine Bedingung erfüllt ist

BLTI Ra, Imm

Verzweigung, wenn kleiner als

PC = PC+ signExtend32 (Imm)

Wenn Ra < 0

BLEI Ra, Imm

Verzweigung, wenn kleiner gleich als

Rd = PC

PC = PC+& signExtend32 (Imm)

Wenn Ra!< = 0

BGTI Ra, Imm

Verzweigung, wenn größer als

PC = PC+ signExtend32 (Imm)

Wenn Ra! > 0

BGEI Ra, Imm

Verzweigung, wenn größer gleich als

PC = PC+signExtend32 (Imm)

Wenn Ra!>= 0

Anweisungen zum Laden/Speichern – Typ A

LW Rd, Ra, Rb

Wort laden

Adresse = Ra+Rb

Rd = *Adresse

SW Rd, Ra, Rb

Wort speichern

Adresse – Ra+Rb

*Adresse = Rd

Typ B

LWI  Rd, Ra, Imn

Wort sofort laden

Adresse = Ra + signExtend32 (Imm)

Rd = *Adresse

SW Rd, Ra, Imm

Wort sofort speichern

Adresse = Ra + signExtend32 (Imm)

*Adresse = Rd

Andere Anweisungen

IM, Imm

sofort

Erweitern Sie den Imm eines vorangehenden Typ-B-Befehls auf 32 Bit.
MFS Rd, Sa

Auszug aus dem Sonderregister

Rd = Sa

Sa- Spezialregister, Quellenoperand

MTS SD, Ra

Wechsel in das Sonderregister

SD = Ra

Sd – Spezialregister, Zieloperand

Register

Die Architektur des MicroBlaze-Prozessors ist vollständig orthogonal und umfasst 32-Bit-Allzweckregister und 32-Bit-Spezialregister wie Programmzähler und Maschinenstatusregister.

Pipeline-Architektur

MicroBlaze verwendet eine dreistufige Pipeline-Architektur, einschließlich Abruf-, Dekodierungs- und Abschlussphasen. Innerhalb der Hardware werden automatisch die Datenweiterleitung, Branches & Pipeline-Stall ermittelt.

Architektur laden oder speichern

MicroBlaze unterstützt Speicher in drei Datengrößen: 8 Bit (Byte), 16 Bit (Halbwort) und 32 Bit (Wort). Speicherzugriffe sind also immer an der Datengröße ausgerichtet. Dies ist ein Big-Endian-Prozessor, der die Adresse der Big-Endian-Adresse sowie Kennzeichnungskonventionen verwendet, sobald auf den Speicher zugegriffen wird.

Unterbricht

Sobald eine Unterbrechung stattfindet, beendet dieser Prozessor die aktuelle Ausführung, um die Unterbrechungsanforderung durch Verzweigung zur Unterbrechungsvektoradresse zu verwalten und die auszuführende Befehlsadresse zu speichern. Dieser Prozessor stoppt zukünftige Interrupts, indem er das IE-Flag (Interrupt Enable) im MSR (Machine Status Register) löscht.

Wie funktioniert Microblaze?

Der MicroBlaze-Prozessor unterstützt 32-Bit-Busbreite und dieser Prozessorkern ist eine RISC-basierte Engine, die eine Registerdatei basierend auf 32-Bit-LUT-RAM durch separate Anweisungen für Speicher- und Datenzugriff enthält.
Dieser Prozessor unterstützt einfach sowohl On-Chip-BlockRAM als auch externen Speicher. Ähnlich dem IBM PowerPC; alle Peripheriegeräte verwenden daher den ähnlichen CoreConnect OPB-Bus; Die Peripherie des Prozessors ist gut auf PowerPC auf Virtex-II Pro abgestimmt.

Der MicroBlaze-Prozessor bietet vollständige Flexibilität bei der Auswahl der Kombination aus Speicher-, Peripherie- und Schnittstellenfunktionen, die Ihnen genau das System bieten, das Sie auf einem einzigen FPGA zu geringeren Kosten benötigen.

Unterschied S/W Microblaze Vs Risc-V

Das Unterschied zwischen MicroBlaze und RISC v füge folgendes hinzu.

Mikrobrand

Risiko-V

Es ist ein weicher Mikroprozessorkern, der hauptsächlich für Xilinx FPGA entwickelt wurde.

RISC-V ist eine Befehlssatzarchitektur, die auf RISC-Prinzipien basiert.

Es verwendet die Harvard RISC-Architektur. Es verwendet eine Befehlssatzarchitektur.
Die Lizenz ist proprietär (Xilinx) Seine Lizenz ist Open Source.
Die Tiefe der Pipeline beträgt 3 oder 5. Die Tiefe der Pipeline beträgt 5.
Seine Leistung beträgt 280 DMIPs. Seine Leistung beträgt 250 DMIPs.
Seine Geschwindigkeit beträgt 235 MHz. Seine Geschwindigkeit beträgt 250 MHz.
Es hat 1027 LUTs. Es hat 4125 LUTs.
Die Implementierung der verwendeten Technologie ist Xilinx FPGA. Die Implementierung der verwendeten Technologie ist FPGA/ASIC.

Microblaze-Vorteile

Das Vorteile von MicroBlaze füge folgendes hinzu.

  • Es ist wirtschaftlich.
  • Es ist hochgradig konfigurierbar.
  • Seine Leistung ist im Vergleich zu ARM hoch.
  • Es wird von einem eingebetteten Entwicklungskit unterstützt.
  • Es ist eine weiche Mikroprozessor Ader.
  • Um Ihnen bei der schnellen Zusammenstellung Ihrer Anwendung zu helfen, enthält dieser Prozessor drei feste Konfigurationen, die sich auf bekannte Prozessorklassen Mikrocontroller, Echtzeit- und Anwendungsprozessor beziehen.

Microblaze-Anwendungen

Das Anwendungen von MicroBlaze füge folgendes hinzu.

  • Dieser Prozessor erfüllt viele verschiedene Anwendungsanforderungen wie Industrie, Automobil, Medizin und Verbraucher usw.
  • Die Anwendungen von MicroBlaze reichen von einfachen Zustandsmaschinen auf Softwarebasis bis hin zu komplexen Controllern, die in eingebetteten Anwendungen oder internetbasierten Geräten verwendet werden.
  • Es ist für eingebettete Anwendungen wie Industriesteuerung, Büroautomatisierung und Automotive optimiert.
  • Der MicroBlaze ist in der Lage, mit einer großen Anzahl von Peripheriegeräten zu kommunizieren, um in mittelgroße Anwendungen zu passen.
  • Die weiche Natur dieses Prozessors macht ihn für verschiedene Anwendungen anpassbar, bei denen Designer Features gegen Größe austauschen können, um Preis- und Leistungsziele für medizinische, Automobil-, Industrie- und Sicherheitsanwendungen zu erreichen.

Es geht also um alles eine Übersicht über die Microblaze Prozessor. Dies ist ein voll ausgestatteter, programmierbarer 32-Bit-RISC-Soft-Prozessorkern. Dieser Prozessor erfüllt unterschiedliche Anforderungen in verschiedenen Bereichen wie Verbraucher-, Medizin-, Industrie-, Automobil- und Kommunikationsinfrastrukturmärkten. Es ist extrem konfigurierbar und wird daher als eingebetteter Prozessor oder Mikrocontroller in FPGAs verwendet, ansonsten wie ein Co-Prozessor für den ARM. Hier ist eine Frage an Sie, was ist FPGA?