MicroBlaze
A MicroBlaze egy szoft processzormag, amelyet a Xilinx gyártmányú FPGA eszközökön való megvalósításra terveztek. A Xilinx terméke, kb. 2002 óta forgalmazzák. A MicroBlaze processzor szoft processzorként teljes egészében a Xilinx FPGA-k általános memória- és logikai celláiból épül fel.
Áttekintés
[szerkesztés]A MicroBlaze utasításkészlet-architektúrája nagyban hasonlít a Patterson és Hennessy által leírt DLX RISC architektúrára, amelyet oktatási célokra találtak ki (a DLX processzornak soha nem készült fizikai megvalósítása, csak egy elméleti konstrukció). A MicroBlaze processzor minden órajelciklusban képes egy utasítás végrehajtásának megkezdésére, és általános esetben képes az egy utasítás végrehajtásának fenntartására órajelciklusonként.
A MicroBlaze processzor sokoldalú kapcsolódási rendszerrel rendelkezik a különböző beágyazott és kiszolgáló rendszerekhez való csatlakozáshoz. Az elsődleges I/O (ki- és bemeneti) sín, a CoreConnect PLB sín[1] egy hagyományos rendszermemóriába leképzett tranzakciós sín mester/szolga lehetőségekkel. A MicroBlaze újabb verziói, így a Spartan-6 és a Virtex-6 implementációk, valamint a 7-es sorozat támogatja az AXI specifikációt. A gyártó vagy harmadik fél által előállított IP interfészek közvetlenül csatlakoznak a PLB-hez, vagy PLB–OPB sín híddal. A helyi memóriát (FPGA BRAM) a MicroBlaze egy dedikált LMB sínen keresztül éri el, ami csökkenti a többi busz terhelését. A felhasználó által definiált koprocesszorokat egy dedikált FIFO-jellegű kapcsolat támogatja, ez a FSL (Fast Simplex Link). A koprocesszor-interfész hasznos lehet különböző intenzív számításokat igénylő algoritmusok végzésénél, mert képes meggyorsítani a számítást úgy, hogy a számítást részben vagy teljes egészében egy felhasználó által definiált külön hardvermodulra helyezi át.
A MicroBlaze összetevői a felhasználó által konfigurálhatók (bizonyos korlátok között): a gyorsítótár mérete, az utasításfutószalag szakaszainak száma (3 vagy 5), a beágyazott perifériák, a MMU és a sín-interfészek mind egyedi igények szerint alakíthatók. A felületre optimalizált változat, amelyben 3-fokozatú futószalag (pipeline) van, az órajelfrekvenciát áldozza fel a csökkentett méretű logika ill. fizikailag elfoglalt felület érdekében. A teljesítményre optimalizált verzió az utasítás-futószalag fokozatainak számát 5-re terjeszti ki, ami által az órajel 210 MHz-re növelhető (* a Virtex-5 FPGA családban). Hasonlóan, a költségesebb hardveres megvalósítású processzorutasítások (pl. szorzás, osztás, lebegőpontos műveletek, stb.) igény szerint elhagyhatók vagy hozzáadhatók. A kialakítás elemeinek szabad konfigurálhatósága nagy segítség a tervezőknek a kitűzött céloknak megfelelő hardver kialakításában.
A memóriavezérlő egység használatával a MicroBlaze képes a hardveres memórialapozást és védelmet igénylő operációs rendszerek futtatására, mint pl. a Linux kernel. Egyébként az operációs rendszerek választéka az egyszerűbb védelmet és virtuális memóriamodellt támogató rendszerekre korlátozódik, mint pl. a FreeRTOS vagy MMU-támogatás nélküli Linux. A MicroBlaze processzorok összteljesítménye jelentősen kisebb, mint a velük összehasonlítható megerősített CPU-magok, pl. a Virtex-5 FPGA típuson megvalósított PowerPC 440.
Általános jellemzők
[szerkesztés]A MicroBlaze egy Harvard-architektúrájú, RISC típusú 32 bites szoft processzor. A szó mérete 32 bit, bájtsorrendje lehet big-endian vagy little-endian. Lebegőpontos számábrázolása megfelel a IEEE 754 szabványnak. Főbb egységei:
- 32 × 32 bites általános célú belső regiszter,
- belső utasítássín (ILMB),
- belső adatsín (DLMB),
- külső utasítássín (IOPB),
- külső adatsín (DOPB),
- a gyorsítótárak 2 KiB – 64 KiB között konfigurálhatók.
A processzor 70 konfigurációs lehetősége lehetővé teszi a felhasználók számára az alábbi belső összetevők kiválasztását vagy kialakítását:
- az utasításfutószalag 3 vagy 5 fokozatú lehet,[2]
- FPGA hardveresen megvalósított (wired) szorzóegységek használata (kivéve a Spartan II-ben)
- osztási művelet
- biteltolási művelet (barrel shifter-rel, állítható lépésméretű léptetőregiszterrel megvalósítva)
- FPU (lebegőpontos egység)
- utasítás- és adat-gyorsítótárak
- debug logika (hardveres töréspontok)
2006-ban a processzorok 900 és 2600 közötti számú logikai cellából épültek fel és 80 – 180 MHz közötti órajelen működhettek.
2009-től a MicroBlaze v7.10 verzióval elérhető a 105–235 MHz közötti órajel (FPGA típustól függően).
A processzorok sebessége az órajel MHz-értéke körüli MIPS v. DMIPS szám, tehát pl. egy 180 MHz-es processzor kb. 166 DMIPS teljesítményt ér el, egy 235 MHz-es megvalósítás 280 DMIPS.
A processzorral változatos mikrovezérlők készíthetők, ehhez összetevők széles választéka áll rendelkezésre:
- memóriavezérlők ( SRAM , Flash)
- SDRAM memóriavezérlő
- UART lite
- időzítő / számláló PWM-mel
- soros sín interfész (SPI sín, Serial Peripheral Interface)
- megszakításvezérlők
- GPIO (általános I/O vezérlő)
- A/D átalakító és D/A Delta-Sigma
- DMA vezérlő
A fizetős verzióban további egységek is rendelkezésre állnak:
Fejlesztés, EDK
[szerkesztés]A Xilinx EDK (Embedded Development Kit, beágyazott fejlesztőkészlet) szolgál MicroBlaze (és PowerPC) beágyazott processzorrendszerek kialakítására a Xilinx gyártmányú FPGA-kon. A készlet az Eclipse fejlesztőrendszerbe illeszkedik, ott a tervezők két különböző környezetet használhatnak: az XPS és az SDK jelűeket.
Az XPS a Xilinx Platform Studio rövidítése, ez a beépített rendszerek – processzormag, memóriavezérlő, ki-bemenet, perifériák, stb. – hardverspecifikációinak konfigurálására és felépítésére szolgál. Az XPS a tervező specifikációját szintetizálható RTL (Verilog vagy VHDL) leírássá konvertálja és elkészíti az automatizált implementáció elkészítésére szolgáló scripteket (RTL-ből bitstream-fájlok). Az EDK alapesetben kódolt (ember által nem olvasható) hálólistát készít, azonban a VHDL processzorleírás megvásárolható a Xilinx-től.
Az SDK kezeli a beágyazott rendszeren végrehajtható szoftvert. Ennek alapját a GNU toolchain (eszköztár vagy eszközcsomag) képezi, a programok C vagy C++ nyelveken készülhetnek, lehetőség van ezek elkészítésére, futtatására és debuggolására. A készlet tartalmazza a Xilinx ciklushelyes utasításkészlet-szimulátorát (ISS, instruction set simulator), így a programok a szimulált környezetben vagy az FPGA eszközre feltöltve is tesztelhetők.
Az EDK vagy az ISE Design Suite Embedded Edition a Xilinx-től vásárolható, és jogot ad a MicroBlaze eszközök használatára Xilinx FPGA hardveren, de a Xilinx eszközein kívüli felhasználása nem engedélyezett.
Léteznek az Altium által készített alternatív fejlesztésű fordítók és fejlesztőeszközök, de ezekhez is szükséges egy telepített EDK és licenc.
Open Source
[szerkesztés]2009 májusában Edgar E. Iglesias létrehozott egy MicroBlaze portot a QEMU számára.
2009 júniusában a MicroBlaze lett az első szoft processzor architektúra amelyet beolvasztottak a fő Linux Kernel forrásfába. Ezt Michal Simek végezte, a PetaLogix és a Xilinx támogatásával.
2009 szeptemberében a FSF fő forrástárában megjelent a MicroBlaze GNU eszközök támogatása. A GCC 4.6-os verziójától kezdődően tartalmazza a MicroBlaze támogatást.[3]
Klónjai
[szerkesztés]- aeMB, Verilog-ban megvalósítva, LGPL licenc
- OpenFire subset, Verilog-ban megvalósítva, MIT licenc
- MB-Lite, VHDL-ben megvalósítva, LGPL licenc
- MB-Lite+, VHDL-ben megvalósítva, LGPL licenc
- myBlaze, MyHDL-ben megvalósítva, LGPL licenc
- SecretBlaze, VHDL-ben megvalósítva, GPL licenc
Más szoft processzorok
[szerkesztés]Jegyzetek
[szerkesztés]- ↑ Michael Baxter, Peter Ryser: Beágyazott rendszerek ízlés szerint (magyar nyelven) (pdf) pp. 1-4. Linuxvilág, Kiskapu Kft., 2002. augusztus 1. [2013. január 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013) – PBA, Virtex-II Pro FPGA és a MontaVista Linux
- ↑ MicroBlaze Processor Reference Guide / Embedded Development Kit EDK 10.1i (angol nyelven) (pdf) pp. 44 / 194. Xilinx, 2008. január 17. „When area optimization is disabled, the pipeline is divided into five stages to maximize performance”
- ↑ GCC 4.6 Release Series Changes, New Features, and Fixes, 2011. március 15. (Hozzáférés: 2011. március 15.) „Support has been added for the Xilinx MicroBlaze softcore processor (microblaze-elf) embedded target.”
Fordítás
[szerkesztés]- Ez a szócikk részben vagy egészben a MicroBlaze című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
[szerkesztés]További információk
[szerkesztés]- MicroBlaze a Xilinx weboldalán
- PetaLogix - MicroBlaze kernel támogatók és üzleti szolgáltatások (PetaLinux)
- uCLinux - uClinux-dist for Microblaze, kernel 2.6.30
- MicroBlaze Embedded Linux support from LynuxWorks (BlueCat Linux)
- Linux and U-BOOT for Microblaze CPU - Michal Simek - maintainer
- MicroBlaze-Based Introduction To Computer Architecture and Assembly Language (UARK) Archiválva 2012. február 12-i dátummal a Wayback Machine-ben
- MicroBlaze managed forum
- Running eCos RTOS on Microblaze Archiválva 2013. április 13-i dátummal a Wayback Machine-ben
- Designing an embedded system using MicroBlaze (RTE)
- FPGA programozása magas szintű nyelven[halott link]
Kapcsolódó szócikkek
[szerkesztés]- Szoft processzor
- FPGA
- OpenCores – több nyílt forrású szoft processzor tervezetet összefogó közösség
- OpenRISC – egy megvalósult OpenCores tervezet
- PicoBlaze