Microblaze - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Le MicroBlaze est un cœur de processeur softcore 32 bits de la société Xilinx. Il est conçu pour être implémenté sur les FPGA de ce fabricant. Le code source de MicroBlaze est fermé.

Architecture

Architecture générale

Le MicroBlaze est un microprocesseur softcore RISC, d'architecture Harvard, entièrement 32 bits. En effet, il possède :

  • 32 registres internes de 32 bits,
  • un bus instructions interne (ILMB),
  • un bus données interne (DLMB),
  • un bus d'instructions externe (IOPB),
  • un bus de données externe (DOPB).

Le processeur comporte 70 options de configuration permettant à l’utilisateur de sélectionner ou de paramétrer les composants internes selon ses besoins :

  • un pipeline à 3 ou 5 niveaux,
  • utilisation des multiplieurs câblés du FPGA (sauf sur Spartan II)
  • opérateur de division
  • opérateur de décalage (Barrel Shifter)
  • FPU (Floating Point Unit)
  • mémoires cache instructions et données
  • logique de débug (hardware breakpoints)


En 2006, il occupait entre 900 et 2600 'logic cells' et atteignait une fréquence maximale de 80 à 180 MHz selon la plateforme FPGA et les options sélectionnées.

FPGA Taille Fréquence Dhrystone 2.1
Virtex-4 (4VLX25-12) 1'269 LUTs 180 MHz 166 DMIPS 0.92 DMIPS/MHz
Virtex-II Pro (2VP20-7) 1'225 LUTs 150 MHz 138 DMIPS 0.92 DMIPS/MHz
Spartan-3 (3S1500-5) 1'318 LUTs 100 MHz 92 DMIPS 0.92 DMIPS/MHz

En 2009, MicroBlaze v7.10 peut atteindre une fréquence de 105 à 235 MHz selon la plateforme FPGA :

FPGA Configuration Taille Fréquence Dhrystone 2.1
Spartan-3 (3SD1800A-5) pipeline à 5 niveaux 1'809 LUTs 105 MHz 125 DMIPS 1.19 DMIPS/MHz
Spartan-3 (3SD1800A-5) pipeline à 3 niveaux 1'324 LUTs 115 MHz 110 DMIPS 0.95 DMIPS/MHz
Virtex-5 (5VLX50) pipeline à 5 niveaux, sans MMU 1'027 LUTs 235 MHz 280 DMIPS 1.19 DMIPS/MHz

On-Chip Peripheral Bus (OPB)

Le bus OPB, conçu par IBM pour ses microcontrôleurs PowerPC, permet de lier plusieurs maîtres à plusieurs esclaves. Il autorise un maximum de 16 maîtres et un nombre d’esclaves illimité selon les ressources disponibles. Xilinx conseille néanmoins un maximum de 16 esclaves. Comme ce bus est multi maîtres, il a donc une politique d’arbitrage paramétrable. Ce bus permet donc d’ajouter des périphériques au MicroBlaze dont les besoins en communications seront faibles.

Local Memory Bus (LMB)

Le bus LMB est un bus synchrone utilisé principalement pour accéder aux blocks RAM inclus sur le FPGA. Il utilise un minimum de signaux de contrôle et protocole simple pour s’assurer d’accéder à la mémoire rapidement (un front d’horloge).

Fast Simplex Link (FSL)

Le MicroBlaze comporte 8 liens entrées/sorties FSL. Le bus FSL est un moyen rapide de communication entre le processeur et une autre entité. Chaque lien FSL 32 bits est unidirectionnel (simplex) et met en œuvre une FIFO (pour stocker les données) et des signaux de contrôle (FULL, EMPTY, WRITE, READ,…). Il met aussi à la disposition du développeur plusieurs fonctions intéressantes dont les plus utilisées sont : “microblaze_bwrite_datafsl” et “microblaze_bread_datafsl”. Ces deux fonctions permettent d'échanger des donnéées entre différents microblazes, par exemple, en utilisant la FIFO déjà intégrée dans le bus FSL. Ces deux fonctions sont bloquantes; bwrite se bloque lorsque la FIFO du bus FSL est saturée et bread se bloque lorsque la FIFO est vide. Il doit y avoir un bwrite pour débloquer la lecture. Les communications sur les liens FSL se font très simplement grâce à des instructions prédéfinies. Elles peuvent atteindre les 300 Mo/s à 150 Mhz.

Xilinx Cache Link (XCL)

Le lien XCL est un lien FSL particulier, dédié à la connexion d'un contrôleur mémoire externe avec la mémoire cache interne. Ceci permet au contrôleur de cache de ne pas être ralenti par la latence du bus OPB.

Page générée en 0.103 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise