Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Microblaze

Un article de Wikipédia, l'encyclopédie libre.

LeMicroBlaze est un cœur deprocesseur softcore 32 bits de la sociétéXilinx. Il est conçu pour être implémenté sur lesFPGA de ce fabricant. Lecode source de MicroBlaze estfermé[1].

Architecture

[modifier |modifier le code]

Architecture générale

[modifier |modifier le code]

Le MicroBlaze est un microprocesseursoftcore 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[2] 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 à 180MHz selon la plateforme FPGA et les options sélectionnées.

FPGATailleFréquenceDhrystone 2.1
Virtex-4 (4VLX25-12)1 269 LUTs180 MHz166 DMIPS0.92 DMIPS/MHz
Virtex-II Pro (2VP20-7)1 225 LUTs150 MHz138 DMIPS0.92 DMIPS/MHz
Spartan-3 (3S1500-5)1 318 LUTs100 MHz92 DMIPS0.92 DMIPS/MHz

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

FPGAConfigurationTailleFréquenceDhrystone 2.1
Spartan-3 (3SD1800A-5)pipeline à 5 niveaux1 809 LUTs105 MHz125DMIPS1.19 DMIPS/MHz
Spartan-3 (3SD1800A-5)pipeline à 3 niveaux1 324 LUTs115 MHz110 DMIPS0.95 DMIPS/MHz
Virtex-5 (5VLX50)pipeline à 5 niveaux, sansMMU1 027 LUTs235 MHz280 DMIPS1.19 DMIPS/MHz

On-Chip Peripheral Bus (OPB)

[modifier |modifier le code]

Le bus OPB, conçu parIBM pour ses microcontrôleursPowerPC, 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)

[modifier |modifier le code]

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)

[modifier |modifier le code]

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)

[modifier |modifier le code]

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.

Périphériques

[modifier |modifier le code]

De nombreux périphériques sont fournis avec le MicroBlaze, afin de constituer unmicrocontrôleur complet et personnalisable. Il y a, entre autres :

  • contrôleur mémoire (SRAM, Flash)
  • contrôleur mémoireSDRAM
  • UART lite
  • Timer/compteur avec fonctionPWM
  • interfaceSPI
  • contrôleur d'interruptions
  • GPIO (entrées-sorties génériques)
  • convertisseurs A/N et N/A Delta-Sigma
  • DMA

De plus, des périphériques payants sont proposés en version d'évaluation, qui ont la particularité de ne fonctionner que quelques heures :

Systèmes d'exploitation

[modifier |modifier le code]

Xilinx MicroKernel

[modifier |modifier le code]

Ensemble de bibliothèques permettant d'obtenir des fonctions basiques de système d'exploitation :

  • pilotes de périphériques
  • séquencement de tâches
  • système de fichiersFAT
  • pileTCP/IP (avec le logiciel librelwip)

uClinux

[modifier |modifier le code]

Portage réalisé par le Dr John Williams de l'université de Brisbane (Australie) et par la communauté d'utilisateurs. La société Petalogix assure le support commercial.L'absence deMMU ne permet pas d'utiliser le noyauLinux standard, mais µCLinux (Linux pour microcontrôleurs) est conçu pour contourner cette limitation.

FreeRTOS

[modifier |modifier le code]

Il existe un port dusystème temps réelFreeRTOS pour Microblaze (cf. liens externes), disponible comme FreeRTOS sous licence GPL modifiée. FreeRTOS est nettement plus léger que linux/uclinux mais a moins d'applications et de pilotes.

Systèmes commerciaux

[modifier |modifier le code]
  • Accelerated Technology Nucleus
  • Express Logic ThreadX
  • Micriµm µC/OS-II RTOS
  • eSOL µITRON4.0
  • RealFast AB Sierra RTOS

Outils de développement

[modifier |modifier le code]

Afin de créer des applications embarquées, Xilinx a développé un outil de développement appelé EDK (Embedded Development Kit). Il s'agit en fait d'une collection de scriptsTcl/Tk liant divers outils en ligne de commande, et d'une interface graphique couvrant l'ensemble.

Méthode de développement

[modifier |modifier le code]

Un processeur soft-core présente la particularité d'une programmation à deux niveaux :

  • configuration matérielle du FPGA pour associer un (ou des) processeur(s) et des périphériques,
  • programmation logicielle sur ce(s) processeur(s).

Cette spécificité nécessite des outils de développement adaptés, et présente plusieurs avantages :

  • démarche decodesign,
  • homogénéité entre matériel et logiciel (interfaces et mapping logiciels générés par les outils hardware),
  • possibilité de faire une simulation HDL du processeur et de ses périphériques (bien que ce soit une opération longue),
  • possibilité de pré-chargement du code résidant en RAM interne lors de la configuration du FPGA : lorsque le système se "réveille" à la mise sous tension, une partie du code est déjà présente en mémoire.
  • synchronisation entre le module de débug (MDM) et l'"analyseur logique virtuel" ChipScope, afin de mener un débug combiné matériel/logiciel.

Bien que la chaîne de développement logiciel (outils GNU), et les outils de synthèse, placement-routage FPGA soient soit tout à fait standard, des outils spécifiques en amont et en aval sont proposés :

  • Assistant de configuration pour cartes existantes (choix de périphériques et placement des entrées-sorties selon le routage de la carte)
  • sélection et assemblage des périphériques
    • choix du processeur
    • connexion des périphériques sur les différents bus, choix des adresses
    • configuration des périphériques
    • déclaration des routines d'interruptions, directement associées aux périphériques
  • compilation des bibliothèques C en fonction des périphériques et options du processeur (FPU, division) choisis
  • initialisation des mémoires internes dans le fichier binaire de configuration du FPGA
  • téléchargement matériel et logiciel, ainsi que débug logiciel, avec le même lienJTAG

EDK

[modifier |modifier le code]

Cet environnement permet de développer une application complète à processeur embarqué et de l’intégrer à un FPGA. EDK donne accès à tous les réglages nécessaires pour l’application embarquée que l’on souhaite créer. Il permet la programmation d’un ou plusieurs MicroBlazes et de leurs périphériques. Il va s’occuper de placer les programmes des MicroBlazes en mémoire lors de la programmation du FPGA. Pour plus d’information sur EDK, reportez-vous à la documentation de Xilinx Embedded SystemTools Reference Manual.

EDK est compatible Linux depuis la version 6.2.

GNU

[modifier |modifier le code]

Les outils de programmation du MicroBlaze sont les outils libres et standard duGNU, personnalisés par Xilinx pour le MicroBlaze. On retrouve ainsiGCC,GDB, et lesBinutils (ld, as, ar, objdump ...). On peut les utiliser en ligne de commande ou à partir de l'interface graphique.Comme ces outils sont conçus pour un environnementUNIX, en cas d'utilisation sousWindows EDK installe l'environnementCygwin.

ModelSim

[modifier |modifier le code]

ModelSim est outil de simulation HDL deMentor Graphics. Une version bridée, ModelSim XE Starter, est disponible gratuitement.

Chronologie des outils de développement

[modifier |modifier le code]
  • MDK 1.9 (fin 2001) Version bêta
  • MDK 2.1 (2002) Première version utilisable, totalement en ligne de commande.
  • MDK 2.2
  • EDK 3.1 (2003) Première version avec interface graphique, commune avec outils PowerPC 405.
  • EDK 3.2
  • EDK 6.1 (2004) Apparition de la mémoire cache et des liens FSL
  • EDK 6.2 Apparition de la FPU
  • EDK 6.3 Apparition des exceptions, développement logiciel avecEclipse (logiciel)
  • EDK 7.1 (2005) Amélioration de la logique de débug, des périphériques et mise à jour du compilateur. Pile TCP/IP.
  • EDK 8.1 (2006) Nouvelle interface graphique basée surQt
  • EDK 8.2 (a paraître en 2006) Support du Virtex5

Voir aussi

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]

Sur les autres projets Wikimedia :

Liens externes

[modifier |modifier le code]

Références

[modifier |modifier le code]
  1. Code source fermé (7e question)https://www.xilinx.com/products/design_resources/proc_central/microblaze_faq.pdf
  2. Les 70 options de configurationhttps://www.xilinx.com/tools/microblaze.htm
  3. Performanceshttps://www.xilinx.com/products/design_resources/proc_central/microblaze_per.htm
v ·m
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Microblaze&oldid=230041514 ».
Catégorie :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp