Qu'est-ce que le processeur Microblaze : architecture, fonctionnement et ses applications

Essayez Notre Instrument Pour Éliminer Les Problèmes





Le processeur MicroBlaze a été développé en 2002 pour intégrer plusieurs fonctionnalités complexes afin de répondre à la demande nouvelle et croissante du marché. Ainsi, le processeur MicroBlaze est un élément essentiel du portefeuille bas de gamme de Xilinx pour permettre un développement plus rapide du système qui contient Artix®-7 FPGA , Spartan®-6, Zynq®-7000 AP SoC. Ce processeur est extrêmement configurable, il peut donc être utilisé comme processeur intégré ou microcontrôleur dans les FPGA et également utilisé comme coprocesseur dans les SoC Zynq-7000 AP basés sur ARM Cortex-A9. Cet article donne de brèves informations sur Processeur MicroBlaze – l'architecture et l'utilisation des applications.


Qu'est-ce que le processeur Microblaze ?

Le microprocesseur logiciel conçu principalement pour les FPGA de Xilinx est connu sous le nom de processeur MicroBlaze. Ce processeur est simplement implémenté dans la mémoire à usage général et la structure logique des FPGA de Xilinx. Ce processeur est similaire à l'architecture DLX basée sur RISC et dispose d'un système d'interconnexion flexible afin de prendre en charge différentes applications embarquées. Le bus d'E/S principal et l'interconnexion AXI du MicroBlaze est un bus de transaction mappé en mémoire avec une fonction maître-esclave.



MicroBlaze utilise un bus LMB dédié pour accéder à la mémoire locale et fournit un stockage rapide sur puce. De nombreuses parties de ce processeur peuvent être configurées par l'utilisateur, comme la taille du cache, la profondeur de l'unité de gestion de la mémoire du pipeline, les périphériques intégrés et les interfaces de bus.

Caractéristiques de Microblaze

La caractéristiques de Microblaz e inclure les éléments suivants. Il dispose de 32 registres à usage général.



  • Il dispose de mots d'instruction de 32 bits comprenant 2 modes d'adressage et 3 opérandes.
  • Le bus d'adresse est de 32 bits.
  • Il a un pipeline à 3 étages ou un pipeline à 5 étages.
  • Une unité de bloc ALU avec un levier de vitesses.
  • L'architecture Harvard comprend un bus de données et d'adresses 32 bits.
  • Interface de données et instruction LMB ou bus de mémoire locale.
  • Interfaces de flux AX14 et AX14.
  • Unité à virgule flottante et unité de gestion de la mémoire.
  • Il prend en charge le verrouillage.
  • Interface de débogage et de suivi.

Architecture microbienne

Le schéma fonctionnel du processeur MicroBlaze est illustré ci-dessous. Ce processeur MicroBlaze est extrêmement personnalisable et prend en charge plus de 70 options de conception. Cette architecture présente des fonctionnalités matérielles permanentes ainsi que des options configurables telles que le cache d'instructions ou de données, l'unité de gestion de la mémoire, l'unité à virgule flottante, etc.

Un système embarqué assemblé autour d'un processeur MicroBlaze comprend principalement le cœur de processeur MicroBlaze Soft, la mémoire locale sur puce, les interconnexions de bus standard et les périphériques OPB (bus périphérique sur puce). Un système de processeur MicroBlaze va principalement d'un cœur de processeur par une mémoire locale à un grand système comprenant plusieurs MicroBlaze processeurs , mémoire externe et de nombreux périphériques OPB.

  Architecture du processeur Microblaze
Architecture du processeur Microblaze

Noyau de processeur souple

Le cœur du processeur logiciel de MicroBlaze est au cœur du système embarqué MicroBlaze. Il s'agit d'un processeur RISC 32 bits très rapide et efficace qui présente les caractéristiques suivantes.

  • Le jeu d'instructions est orthogonal.
  • Bus de données et d'instructions séparés.
  • Registres à usage général 32 bits.
  • Il dispose d'un levier de vitesses complet 32 ​​bits en option.
  • Interfaces intégrées pour OCM rapide ou mémoire sur puce et OPB (On-chip Peripheral Bus) standard de l'industrie d'IBM.

Les implémentations dans Virtex-II et les appareils ultérieurs prennent en charge la multiplication du matériel.

Mémoire locale sur puce

La mémoire synchrone est une mémoire locale qui est principalement utilisée pour autoriser la RAM bloc sur puce.

Interconnexions de bus standard

Les interfaces de bus côté instructions et données comprennent une interface vers la mémoire locale appelée LMB (Local Memory Bus) et une interface vers le bus périphérique sur puce d'IBM. Nous pouvons donc concevoir des systèmes strictement conformes à l'architecture de Harvard, sinon, pour partager les ressources, nous pouvons utiliser un seul OPB en combinaison via un arbitre de bus.

Le bus de mémoire local assure une entrée à cycle unique pour la RAM de bloc sur puce. Il s'agit d'un protocole de bus très efficace, simple et à maître unique, parfait pour interfacer une mémoire locale rapide. L'OPB ou On-chip Peripheral Bus est un bus multi-maître large de 32 bits qui est parfait pour unir les périphériques et la mémoire extérieure au cœur du processeur MicroBlaze.

Périphériques de bus périphériques sur puce

Le système matériel MicroBlaze est complété par des périphériques OPB pour fournir différentes fonctions comme Watchdog Timer ou Timebase, General Purpose Timer ou Counters, IC (Interrupt Controller), différents contrôleurs comme SRAM, Flash Memory, ZBT Memory, BRAM, DDR, SDRAM, UART Lite , SPI, I2C, E/S à usage général, UART 16450/550 et Ethernet 10/100 MAC. De plus, nous pouvons également ajouter et définir des périphériques principalement pour des fonctions personnalisées, sinon une interface vers une conception qui existe dans le FPGA.

Ensemble d'instructions Microblaze

Les jeux d'instructions Microblaze sont l'arithmétique, la logique, la branche, le chargement/stockage et autres. La taille de toutes les instructions est fixe. Au plus 3 registres peuvent être donnés comme opérandes. Microblaze comprend deux formats d'instructions Type A et Type B qui sont présentés ci-dessous.

Le format d'instruction de type A est principalement utilisé pour les instructions registre-registre. Il inclut donc l'opcode, une destination unique et deux registres source. Le format d'instruction de type B est principalement utilisé pour les instructions immédiates au registre qui incluent les registres d'opcode, de destination unique et de source unique. & une source de valeur immédiate de 16 bits.

  Formats d'instructions
Formats d'instructions

Dans les deux formats d'instruction ci-dessus, l'opcode est un code d'opération, Rd est un registre de destination qui est codé avec 5 bits, Ra et Rb sont des registres source où chacun est codé avec 5 bits et Immediate est une valeur 16 bits.

Instructions arithmétiques

Les instructions arithmétiques de type A et de type B sont données ci-dessous.

Type A

AJOUTER Rd, Ra, Rb

ajouter

Rd = Ra+Rb, Carry flag affecté

AJOUTER K Rd, Ra, Rb

Ajouter et conserver

Rd = Ra+Rb, Carry flag non affecté

RSUB Rd, Ra, Rb

Soustraction inverse

Rd = R-Rb, Carry flag non affecté

Tapez B

AJOUTER I Rd, Ra, Imm

ajouter immédiatement

Rd = Ra+signExtend32 (Imm)

AJOUTER IK Rd, Ra, Imm

ajouter immédiatement et garder emporter

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

soustraction inverse avec effet immédiat

Rd = Ra+ signExtend32 (Imm) -Ra

Chemin SRA, Ra

décalage arithmétique vers la droite

Rd = (Ra>>1)

Instructions logiques

Les instructions logiques de type A et de type B sont données ci-dessous.

Type A

OU Rd, Ra, Rb

Logique ou

Rd = Ra| Rb

ET Rd,Ra,Rb

Ajout logique

Rd = Ra & Rb
XOR Rd, Ra, Rb

xor logoique

Rd = Rb ^ Rb

Chemin ANDN, Ra, Rb

Logique et pas

Rd = Ra & (Rb)

Tapez B

ORI Rd, Ra, Imm

OU logique avec immédiat

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

ET logique avec immédiat

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

logoical XOR avec immédiat

Rd = Ra ^ signExtend32 (Imm)

ANDNI Rd, Ra, Imm

ET NON logique avec immédiat

Rd = Ra & (signExtend32 (Imm))

Instructions de la succursale - Inconditionnel

Modifier le registre du compteur de programme

BRID Imm

branche immédiate avec délai immédiat

PC = PC+ signExtend32 (Imm)

autoriser l'exécution de l'emplacement de retard

Chemin BRLID, Imm

branche et lien immédiat avec délai immédiat (appel de fonction)

Rd = PC

PC = PC+& signExtend32 (Imm)

autoriser l'exécution de l'emplacement de retard

RTSD Ra, Imm

retour de sous-programme

PC = Ra + signExtend32 (Imm)

autoriser l'exécution de l'emplacement de retard

RTID Ra, Imm

retour d'interruption

PC = Ra + signExtend32 (Imm)

autoriser l'exécution de l'emplacement de retard

définir l'autorisation d'interruption dans MSR

Instructions de la succursale - Inconditionnel1

Modifier le registre du compteur de programme lorsqu'une condition est satisfaite

BEQI Ra, Imm

branche si égale

PC = PC+ signExtend32 (Imm)

Si Ra = = 0

MASH Ra, Imm

branche sinon égale

Rd = PC

PC = PC+& signExtend32 (Imm)

Si Ra! = 0

Instructions de la succursale - Inconditionnel2

Modifier le registre du compteur de programme lorsqu'une condition est satisfaite

BLTI Ra, Imm

branche si inférieur à

PC = PC+ signExtend32 (Imm)

Si Ra < 0

BLEI Ra, Imm

branche si inférieur égal à

Rd = PC

PC = PC+& signExtend32 (Imm)

Si Ra!< = 0

BGTI Ra, Imm

branche si supérieur à

PC = PC+ signExtend32 (Imm)

Si Ra!> 0

BGEI Ra, Imm

branche si supérieur égal à

PC = PC+signExtend32 (Imm)

Si Ra!>= 0

Instructions de chargement/stockage -Type A

LW Rd, Ra, Rb

Mot de charge

Adresse = Ra+Rb

Rd = *Adresse

SO Rd, Ra, Rb

Stocker le mot

Adresse – Ra+Rb

*Adresse = Chemin

Tapez B

LWI Rd, Ra, Imn

Charger le mot immédiatement

Adresse = Ra + signExtend32 (Imm)

Rd = *Adresse

SW Rd, Ra, Imm

Stocker le mot immédiatement

Adresse = Ra + signExtend32 (Imm)

*Adresse = Chemin

Autres consignes

IMM, Imm

immédiat

Étendez l'Imm d'une instruction de type B précédente à 32 bits.
Chemin MFS, Sa

Déplacer du registre à usage spécial

Rd = Sa

Sa- registre à usage spécial, opérande source

MTS Sd, Ra

Passer au registre à usage spécial

Sd = Ra

Sd - registre à usage spécial, opérande de destination

Registres

L'architecture du processeur MicroBlaze est complètement orthogonale et comprend des registres à usage général 32 bits et des registres à usage spécial 32 bits comme le compteur de programme et le registre d'état de la machine.

Architecture de pipeline

MicroBlaze utilise une architecture de pipeline en 3 étapes comprenant les étapes de récupération, de décodage et d'achèvement. Automatiquement, le transfert de données, les branches et le décrochage du pipeline sont déterminés au sein du matériel.

Charger ou stocker l'architecture

MicroBlaze prend en charge la mémoire en trois tailles de données 8 bits (octet), 16 bits (demi-mot) et 32 ​​bits (mot). Ainsi, les accès mémoire sont toujours alignés sur la taille des données. Il s'agit d'un processeur Big-Endian qui utilise l'adresse de l'adresse Big-Endian ainsi que les conventions d'étiquetage une fois qu'il accède à la mémoire.

Interruptions

Une fois qu'une interruption a lieu, ce processeur mettra fin à l'exécution actuelle pour gérer la demande d'interruption en se ramifiant pour interrompre l'adresse vectorielle et stocker l'adresse d'instruction qui doit être exécutée. Ce processeur arrêtera les futures interruptions en effaçant l'indicateur IE (Interrupt Enable) dans le MSR (Machine Status Register).

Comment fonctionne Microblaze ?

Le processeur MicroBlaze prend en charge une largeur de bus de 32 bits et ce cœur de processeur est un moteur basé sur RISC qui comprend un fichier de registre basé sur une RAM LUT 32 bits via des instructions séparées pour l'accès à la mémoire et aux données.
Ce processeur prend simplement en charge à la fois la BlockRAM sur puce et la mémoire externe. Similaire à l' IBM PowerPC ; tous les périphériques utilisent le même bus CoreConnect OPB donc ; les périphériques du processeur sont bien assortis avec PowerPC sur Virtex-II Pro.

Le processeur MicroBlaze offre une flexibilité totale pour choisir la combinaison de fonctionnalités de mémoire, de périphériques et d'interface qui vous fournira le système précis dont vous avez besoin sur un seul FPGA à moindre coût.

Différence N/B Microblaze Vs Risc-V

La différence entre MicroBlaze et RISC v inclure les éléments suivants.

Microblaze

Risc-V

Il s'agit d'un noyau de microprocesseur souple principalement conçu pour les FPGA Xilinx.

RISC-V est une architecture de jeu d'instructions ancrée dans les principes RISC.

Il utilise l'architecture Harvard RISC. Il utilise l'architecture du jeu d'instructions.
Sa licence est propriétaire (Xilinx) Sa licence est open source.
La profondeur du pipeline est de 3 ou 5. La profondeur du pipeline est de 5.
Ses performances sont de 280 DMIP. Ses performances sont de 250 DMIP.
Sa vitesse est de 235 MHz. Sa vitesse est de 250 MHz.
Il a 1027 LUT. Il a 4125 LUT.
La mise en œuvre de la technologie utilisée est Xilinx FPGA. L'implémentation de la technologie utilisée est FPGA/ASIC.

Avantages de Microblaze

La avantages de MicroBlaze inclure les éléments suivants.

  • C'est économique.
  • Il est hautement configurable.
  • Ses performances sont élevées par rapport à ARM.
  • Il est pris en charge par un kit de développement intégré.
  • C'est un doux microprocesseur cœur.
  • Pour vous aider à organiser rapidement votre application, ce processeur comprend trois configurations fixes qui sont liées aux classes de processeur bien connues microcontrôleur, temps réel et processeur d'application.

Applications Microblaze

La applications de MicroBlaze inclure les éléments suivants.

  • Ce processeur répond à de nombreuses exigences d'applications différentes telles que l'industrie, l'automobile, la médecine et la consommation, etc.
  • Les applications de MicroBlaze vont des simples machines d'état basées sur des logiciels aux contrôleurs complexes utilisés dans les applications embarquées ou les appareils basés sur Internet.
  • Il est optimisé pour les applications embarquées telles que le contrôle industriel, la bureautique et l'automobile.
  • Le MicroBlaze est capable de communiquer avec un grand nombre de périphériques pour s'adapter aux applications à moyenne échelle.
  • La nature douce de ce processeur le rend personnalisable pour différentes applications où les concepteurs peuvent échanger des fonctionnalités pour la taille afin d'atteindre les objectifs de prix et de performances pour les applications médicales, automobiles, industrielles et de sécurité.

Ainsi, il s'agit de un aperçu du Microblaze processeur. Il s'agit d'un cœur de processeur logiciel RISC programmable 32 bits complet. Ce processeur répond à différentes exigences dans différents domaines tels que les marchés des infrastructures grand public, médicaux, industriels, automobiles et de communication. Il est extrêmement configurable, donc utilisé comme processeur ou microcontrôleur intégré dans les FPGA, sinon comme un coprocesseur pour l'ARM. Voici une question pour vous, qu'est-ce que le FPGA?