MicroBlaze
MicroBlaze is een softcoreprocessor van Xilinx gemaakt voor het gebruik in Xilinx FPGA's (Field Programmable Arrays). Een softcoreprocessor is beschreven in een hardware description language (HDL), die zich bevindt in het deel configureerbare logica in de FPGA's. In 2001 kwam de eerste versie van MicroBlaze uit. De huidige versie is versie 5.
Voorbeeld VHDL-broncode
bewerkenArchitectuur
bewerkenDe MicroBlaze-architectuur is gebaseerd op een 32 bit-RISC-architectuur met een aparte data- en adresbus. Het is vergelijkbaar met de DLX-architectuur. De basis architectuur bestaat uit 32 registers, een Arithmetic Logic Unit (ALU), schuifregister en 2 soorten interrupts. De laatste MicroBlaze bezit een 5 stage-pipeline. Hij slaagt er ook in om de meeste instructies in één enkele cyclus uit te voeren. Zowel de instructies als de data invoer zijn 32 bits lang.
Prestaties
bewerkenDe prestaties van de MicroBlaze hangen sterk af van de configuratie die gebruikt wordt. Zowel de FPGA-structuur als de manier van implementatie spelen een rol. De nieuwste versie van de MicroBlaze haalt snelheden tot 200 MHz. De juiste metingen in verband met prestaties gebeuren door middel van de Dhrystone, een benchmarkprogramma. De prestatie is uitgedrukt in aantal Dhrystone-instructies per seconde. (DMIPS). De tabel geeft een vergelijking tussen de maximum MicroBlaze Dhrystone-prestaties voor Virtex-5 en Spartan-3 FPGA’s.
Vergelijkingstabel
bewerkenFPGA | Grootte (LUTs) |
Klokfrequentie (MHz) |
Dhrystone 2,1 (DMIPS) |
Prestatie (DMIPS/MHz) |
---|---|---|---|---|
Virtex-5 | 960 | 210 | 240 | 1,15 |
Virtex-4 Pro | 1700 | 160 | 184 | 1,15 |
Spartan-3 | 1230 | 100 | 92 | 0,92 |
Software
bewerkenXilinx levert bij het hele MicroBlaze ontwikkelingskit een beperkte hoeveelheid software. Waaronder de GNU Compiler Collection die het mogelijk maakt om de programmeertaal C te gebruiken om programma's te schrijven voor deze architectuur.
Het is op zich niet mogelijk om een compleet besturingssysteem te draaien op een MicroBlaze-processor door het ontbreken van een Memory Management Unit. Er bestaan echter een paar opensource-besturingssystemen die zijn aangepast om te kunnen functioneren op een MicroBlaze zoals µClinux en FreeRTOS.
Periferie
bewerkenDe MicroBlaze heeft verschillende componenten waarmee kan gecommuniceerd worden via onder andere controllers. Volgende controllers zijn terug te vinden in de omgeving van de MicroBlaze
- Externe geheugen controller (flash/SRAM) voor de opslag van data.
- SDRAM-, DDR SDRAM-controllers voor het aanspreken van geheugen buiten de MircoBlaze
- Interruptcontroller
- UART [Uart-lite, JTAG]
- GPIO
- CoreConnect infrastructure IP maakt netwerking mogelijk.
De MicroBlaze kan ook verbinding op de OPB (On-Chip Peripheral Bus) maken voor een brede toegang tot verschillende modules. Het kan ook nog communiceren via de LMB (Local Memory Bus) voor snelle toegang tot het lokale geheugen in de FPGA.
Compatibiliteit
bewerkenMicroBlaze werkt alleen op volgende componenten van Xilinx
- Virtex-5 LX
- Virtex-5 FX
- Virtex-5 SX
- Virtex-4 FX
- Virtex-4 LX
- Virtex-4 SX
- Virtex-II Pro
- Virtex-II
- Virtex-E
- Spartan-3E
- Spartan-3
- Spartan-IIE
- Spartan-II