Czym jest procesor Microblaze: architektura, działanie i jego zastosowania

Wypróbuj Nasz Instrument Do Eliminowania Problemów


OPTAD-VIDEO


Procesor MicroBlaze został opracowany w 2002 roku, aby zintegrować kilka skomplikowanych funkcji, aby sprostać nowym i rosnącym wymaganiom rynku. Tak więc procesor MicroBlaze jest niezbędnym elementem w ofercie produktów Xilinx Low-End, aby umożliwić szybszy rozwój systemu, który zawiera Artix®-7 FPGA , Spartan®-6, Zynq®-7000 AP SoC. Ten procesor jest niezwykle konfigurowalny, dzięki czemu może być używany jako wbudowany procesor lub mikrokontroler w układach FPGA, a także jako koprocesor w układach SoC Zynq-7000 AP opartych na ARM Cortex-A9. Ten artykuł zawiera krótkie informacje na temat Procesor MicroBlaze – architektura i praca z aplikacjami.


Co to jest procesor Microblaze?

Miękki mikroprocesor, który jest przeznaczony głównie do układów FPGA firmy Xilinx, jest znany jako procesor MicroBlaze. Ten procesor jest po prostu zaimplementowany w pamięci ogólnego przeznaczenia i strukturze logicznej układów FPGA firmy Xilinx. Ten procesor jest podobny do architektury DLX opartej na RISC i ma elastyczny system połączeń, dzięki czemu obsługuje różne aplikacje wbudowane. Główna magistrala we/wy i połączenie AXI MicroBlaze to mapowana w pamięci magistrala transakcyjna z funkcją master-slave.



MicroBlaze wykorzystuje dedykowaną magistralę LMB, aby uzyskać dostęp do pamięci lokalnej i zapewnia szybkie przechowywanie na chipie. Wiele części tego procesora może być skonfigurowanych przez użytkownika, takich jak rozmiar pamięci podręcznej, głębokość jednostki zarządzania pamięcią potoku, wbudowane urządzenia peryferyjne i interfejsy magistrali.

Funkcje Microblaze

The cechy Microblaz e obejmują następujące. Posiada 32 rejestry ogólnego przeznaczenia.



  • Zawiera 32-bitowe słowa instrukcji, w tym 2 tryby adresowania i 3 operandy.
  • Magistrala adresowa jest 32-bitowa.
  • Posiada potok 3-stopniowy lub potok 5-stopniowy.
  • Blok blokowy ALU z manetką.
  • Architektura Harvardu obejmuje 32-bitową magistralę danych i adresową.
  • Interfejs danych i instrukcja LMB lub lokalnej magistrali pamięci.
  • Interfejsy strumieniowe AX14 i AX14.
  • Jednostka zmiennoprzecinkowa i jednostka zarządzania pamięcią.
  • Obsługuje lockstep.
  • Interfejs debugowania i śledzenia.

Architektura mikrobazy

Schemat blokowy procesora MicroBlaze pokazano poniżej. Ten procesor MicroBlaze jest niezwykle konfigurowalny i obsługuje ponad 70 opcji projektowych. Ta architektura zawiera stałe funkcje sprzętowe, a także konfigurowalne opcje, takie jak pamięć podręczna instrukcji lub danych, jednostka zarządzania pamięcią, jednostka zmiennoprzecinkowa itp.

jakiś Wbudowany system montowane wokół procesora MicroBlaze obejmują głównie rdzeń procesora MicroBlaze Soft, pamięć lokalną na chipie, standardowe połączenia magistrali i urządzenia peryferyjne OPB (On-chip Peripheral Bus). System procesorowy MicroBlaze obejmuje głównie rdzeń procesora przez pamięć lokalną do dużego systemu zawierającego kilka MicroBlaze przetwórcy , pamięć zewnętrzna i wiele urządzeń peryferyjnych OPB.

  Architektura procesora Microblaze
Architektura procesora Microblaze

Miękki rdzeń procesora

Miękki rdzeń procesora MicroBlaze jest centralnym elementem systemu wbudowanego MicroBlaze. Jest to bardzo szybki i wydajny 32-bitowy procesor RISC, który posiada następujące cechy.

  • Zestaw instrukcji jest ortogonalny.
  • Oddzielne magistrale danych i instrukcji.
  • 32-bitowe rejestry ogólnego przeznaczenia.
  • Posiada opcjonalny kompletny 32-bitowy przesuwnik lufy.
  • Wbudowane interfejsy do szybkiej obsługi OCM lub pamięci wbudowanej w układy oraz standardu branżowego IBM OPB (On-chip Peripheral Bus).

Wdrożenia w Virtex-II i późniejszych urządzeniach obsługują wiele urządzeń.

Wbudowana pamięć lokalna

Pamięć synchroniczna jest pamięcią lokalną, która jest używana głównie do zezwalania na blokową pamięć RAM w układzie.

Standardowe połączenia magistrali

Interfejsy magistrali po stronie instrukcji i danych obejmują interfejs do pamięci lokalnej, który nazywa się LMB (Local Memory Bus) oraz interfejs do On-chip Peripheral Bus firmy IBM. Możemy więc projektować systemy, które ściśle trzymają się architektury Harvarda, w przeciwnym razie, aby współdzielić zasoby, możemy wykorzystać pojedynczą OPB w kombinacji za pośrednictwem arbitra magistrali.

Lokalna magistrala pamięci zapewnia gwarantowane jednocyklowe wejście dla wbudowanej pamięci RAM. Jest to bardzo wydajny, prosty i jednorzędowy protokół magistrali, który doskonale nadaje się do łączenia szybkiej pamięci lokalnej. OPB lub On-chip Peripheral Bus to 32-bitowa szeroka magistrala multi-master, która jest idealna do łączenia urządzeń peryferyjnych i pamięci zewnętrznej z rdzeniem procesora MicroBlaze.

Peryferyjne urządzenia peryferyjne do autobusów na chipie

System sprzętowy MicroBlaze jest uzupełniany przez urządzenia peryferyjne OPB zapewniające różne funkcje, takie jak zegar watchdog lub podstawa czasu, zegar lub licznik ogólnego przeznaczenia, układ scalony (kontroler przerwań), różne kontrolery, takie jak SRAM, pamięć Flash, pamięć ZBT, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, We/Wy ogólnego przeznaczenia, UART 16450/550 i Ethernet 10/100 MAC. Dodatkowo możemy również dodawać i definiować urządzenia peryferyjne głównie dla funkcji niestandardowych, w przeciwnym razie interfejs do projektu, który istnieje w FPGA.

Zestaw instrukcji Microblaze

Zestawy instrukcji Microblaze to arytmetyka, logika, gałąź, ładowanie/zapisywanie i inne. Rozmiar wszystkich instrukcji jest stały. Jako operandy można podać co najwyżej 3 rejestry. Microblaze zawiera dwa formaty instrukcji Typ A i Typ B, które pokazano poniżej.

Format instrukcji typu A jest używany głównie w instrukcjach rejestr-rejestr. Zawiera więc kod operacyjny, jedno miejsce docelowe i dwa rejestry źródłowe. Format instrukcji typu B jest używany głównie dla instrukcji rejestrowych, które zawierają kod operacji, rejestry pojedynczego przeznaczenia i pojedynczego źródła. 16-bitowe źródło wartości natychmiastowej.

  Formaty instrukcji
Formaty instrukcji

W powyższych dwóch formatach instrukcji, kod operacyjny jest kodem operacji, Rd jest rejestrem docelowym zakodowanym za pomocą 5-bitów, Ra i Rb są rejestrami źródłowymi, w których każdy jest zakodowany za pomocą 5-bitów, a Natychmiastowy jest wartością 16-bitową.

Instrukcje arytmetyczne

Instrukcje arytmetyczne typu A i typu B podano poniżej.

Typ A

DODAJ Rd, Ra, Rb

Dodaj

Rd = Ra+Rb, dotyczy flagi przenoszenia

DODAJ K Rd, Ra, Rb

Dodaj i zachowaj noszenie

Rd = Ra+Rb, nie dotyczy flagi przenoszenia

RSUB Rd, Ra, Rb

Odwrotne odejmowanie

Rd = R-Rb, nie dotyczy flagi przenoszenia

Typ B

DODAJ I Rd, Ra, Imm

dodaj natychmiast

Rd = Ra+znakExtend32 (Imm)

DODAJ IK Rd, Ra, Imm

dodaj natychmiast i zachowaj noszenie

Rd = znak Ra+Extend32 (Imm)
RSUBIK Rd, Ra, Imm

odwrotne odejmowanie z natychmiastowym

Rd = Ra+ znakExtend32 (Imm) -Ra

SRA Rd, Ra

przesunięcie arytmetyczne w prawo

Rd = (Ra>>1)

Instrukcje logiczne

Instrukcje logiczne typu A i typu B podano poniżej.

Typ A

LUB Rd, Ra, Rb

Logiczne lub

Rd = Ra| Rb

ORAZ Rd,Ra,Rb

Dodaj logiczny

Rd = Ra i Rb
XOR Rd, Ra, Rb

logiczny xor

Rd = Rb ^ Rb

ANDN Rd, Ra, Rb

Logiczne i nie

Rd = Ra i (Rb)

Typ B

ORI Rd, Ra, Imm

logiczne OR z natychmiastowym

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

logiczne AND z natychmiastowym

Rd = Ra i znakExtend32 (Imm)
XORI Rd, Ra, Imm

logiczny XOR z natychmiastowym

Rd = znak Ra ^Extend32 (Imm)

ANDNI Rd, Ra, Imm

Logiczne I NIE z natychmiastowym

Rd = Ra & (znakExtend32 (Imm))

Instrukcje oddziałowe — bezwarunkowe

Zmodyfikuj rejestr licznika programu

BRID Imm

oddział natychmiast z natychmiastowym opóźnieniem

PC = PC+ znakExtend32 (Imm)

zezwól na wykonanie slotu opóźnienia

BRLID Rd, Imm

rozgałęzienie i połączenie natychmiastowe z natychmiastowym opóźnieniem (wywołanie funkcji)

Rd = PC

PC = PC+i znakExtend32 (Imm)

zezwól na wykonanie slotu opóźnienia

RTSD Ra, Imm

powrót z podprogramu

PC = Ra + znakExtend32 (Imm)

zezwól na wykonanie slotu opóźnienia

RTID Ra, Imm

powrót z przerwania

PC = Ra + znakExtend32 (Imm)

zezwól na wykonanie slotu opóźnienia

ustaw włączanie przerwań w MSR

Instrukcje oddziału — bezwarunkowe1

Zmień rejestr licznika programu, gdy warunek jest spełniony

BEQI Ra, Imm

oddział, jeśli jest równy

PC = PC+ znakExtend32 (Imm)

Jeśli Ra = = 0

MASH Ra, Imm

oddział, jeśli nie jest równy

Rd = PC

PC = PC+i znakExtend32 (Imm)

Jeśli Ra! = 0

Instrukcje oddziału — bezwarunkowe2

Zmień rejestr licznika programu, gdy warunek jest spełniony

BLTI Ra, Imm

oddział, jeśli jest niższy niż

PC = PC+ znakExtend32 (Imm)

Jeśli Ra < 0

BLEI Ra, Imm

gałąź, jeśli mniejsza równa niż

Rd = PC

PC = PC+i znakExtend32 (Imm)

Jeśli Ra!< = 0

BGTI Ra, Imm

oddział, jeśli jest większy niż

PC = PC+ znakExtend32 (Imm)

Jeśli Ra!> 0

BGEI Ra, Imm

gałąź, jeśli większa równa niż

PC = PC+znakExtend32 (Imm)

Jeśli Ra!>= 0

Instrukcje ładowania/przechowywania — typ A

LW Rd, Ra, Rb

Załaduj słowo

Adres = Ra+Rb

Rd = *Adres

SW Rd, Ra, Rb

Przechowuj słowo

Adres – Ra+Rb

*Adres = Rd

Typ B

LWI Rd, Ra, Imn

Załaduj słowo natychmiast

Adres = Ra + znakExtend32 (Imm)

Rd = *Adres

SW Rd, Ra, Imm

Zapisz słowo natychmiast

Adres = Ra + znakExtend32 (Imm)

*Adres = Rd

Inne instrukcje

IMM, Imm

natychmiastowy

Rozszerz Imm poprzedniej instrukcji typu B do 32 bitów.
MFS Rd, Sa

Przejdź z rejestru specjalnego przeznaczenia

Rd = Sa

Sa- rejestr specjalnego przeznaczenia, operand źródłowy

MTS Sd, Ra

Przejdź do rejestru specjalnego przeznaczenia

Sd = Ra

Sd – rejestr specjalnego przeznaczenia, operand przeznaczenia

Rejestry

Architektura procesora MicroBlaze jest całkowicie ortogonalna i obejmuje 32-bitowe rejestry ogólnego przeznaczenia i 32-bitowe rejestry specjalnego przeznaczenia, takie jak licznik programu i rejestr stanu maszyny.

Architektura rurociągów

MicroBlaze wykorzystuje 3-stopniową architekturę potoku, w tym etapy pobierania, dekodowania i kompletowania. Przekazywanie danych, rozgałęzienia i przestoje w rurociągu są automatycznie określane w sprzęcie.

Załaduj lub przechowuj architekturę

MicroBlaze obsługuje pamięć w trzech rozmiarach danych 8 bitów (Byte), 16 bitów (Halfword) i 32 bitów (Word). Tak więc dostępy do pamięci są zawsze dopasowane do rozmiaru danych. Jest to procesor Big-Endian, który używa adresu adresu Big-Endian, a także konwencji etykietowania po uzyskaniu dostępu do pamięci.

Przerwania

Po wystąpieniu przerwania, ten procesor zakończy obecne wykonywanie, aby zarządzać żądaniem przerwania poprzez rozgałęzienie do adresu wektora przerwań i przechowywać adres instrukcji, który ma zostać wykonany. Ten procesor zatrzyma przyszłe przerwania, usuwając flagę IE (Interrupt Enable) w MSR (Machine Status Register).

Jak działa Microblaze?

Procesor MicroBlaze obsługuje szynę o szerokości 32 bitów, a ten rdzeń procesora to silnik oparty na RISC, który zawiera plik rejestru oparty na 32-bitowej pamięci LUT RAM za pomocą oddzielnych instrukcji dotyczących dostępu do pamięci i danych.
Ten procesor po prostu obsługuje zarówno wbudowaną pamięć BlockRAM, jak i pamięć zewnętrzną. Podobny do IBM PowerPC; wszystkie urządzenia peryferyjne wykorzystują podobną magistralę CoreConnect OPB; peryferia procesora są dobrze dopasowane do PowerPC na Virtex-II Pro.

Procesor MicroBlaze zapewnia pełną elastyczność w wyborze kombinacji funkcji pamięci, urządzeń peryferyjnych i interfejsów, które zapewnią Ci precyzyjny system, jakiego potrzebujesz na pojedynczym układzie FPGA przy niższych kosztach.

Różnica między B/W Microblaze a Risc-V

The różnica między MicroBlaze i RISC v obejmują następujące elementy.

Mikroblaze

Ryzyko-V

Jest to miękki rdzeń mikroprocesorowy zaprojektowany głównie dla Xilinx FPGA.

RISC-V to architektura zestawu instrukcji zakorzeniona w zasadach RISC.

Wykorzystuje architekturę Harvard RISC. Wykorzystuje architekturę zestawu instrukcji.
Jego licencja jest zastrzeżona (Xilinx) Jego licencja jest open source.
Głębokość rurociągu wynosi 3 lub 5. Głębokość rurociągu wynosi 5.
Jego wydajność to 280 DMIPs. Jego wydajność to 250 DMIPs.
Jego prędkość wynosi 235 MHz. Jego prędkość wynosi 250 MHz.
Ma 1027 LUT. Ma 4125 LUT.
Zastosowaną implementacją technologii jest Xilinx FPGA. Zastosowaną implementacją technologii jest FPGA/ASIC.

Zalety Microblaze

The zalety MicroBlaze obejmują następujące elementy.

  • Jest ekonomiczny.
  • Jest wysoce konfigurowalny.
  • Jego wydajność jest wysoka w porównaniu do ARM.
  • Jest obsługiwany przez wbudowany zestaw deweloperski.
  • To jest miękkie mikroprocesor rdzeń.
  • Aby pomóc w szybkim zorganizowaniu aplikacji, ten procesor zawiera trzy stałe konfiguracje, które są związane z dobrze znanymi klasami procesorów: mikrokontrolerem, procesorem czasu rzeczywistego i procesorem aplikacji.

Aplikacje Microblaze

The zastosowania MicroBlaze obejmują następujące elementy.

  • Ten procesor spełnia wiele różnych wymagań aplikacji, takich jak przemysł, motoryzacja, medycyna i konsumpcja itp.
  • Zastosowania MicroBlaze sięgają od prostych maszyn stanowych opartych na oprogramowaniu do złożonych kontrolerów używanych w aplikacjach wbudowanych lub urządzeniach internetowych.
  • Jest zoptymalizowany pod kątem aplikacji wbudowanych, takich jak sterowanie przemysłowe, automatyka biurowa i motoryzacja.
  • MicroBlaze jest w stanie komunikować się z dużym zestawem urządzeń peryferyjnych, aby zmieścić się w aplikacjach o średniej skali.
  • Miękka natura tego procesora sprawia, że ​​można go dostosować do różnych zastosowań, w których projektanci mogą wymieniać cechy w zależności od rozmiaru, aby spełnić cele dotyczące ceny i wydajności w zastosowaniach medycznych, motoryzacyjnych, przemysłowych i związanych z bezpieczeństwem.

Tak więc o to chodzi przegląd Microblaze edytor. Jest to w pełni funkcjonalny, 32-bitowy programowalny rdzeń procesora RISC. Ten procesor spełnia różne wymagania w różnych dziedzinach, takich jak rynek infrastruktury konsumenckiej, medycznej, przemysłowej, motoryzacyjnej i komunikacyjnej. Jest niezwykle konfigurowalny, więc używany jako wbudowany procesor lub mikrokontroler w FPGA, podobnie jak koprocesor dla ARM. Oto pytanie do Ciebie, co to jest FPGA?