MicroBlaze

A Wikipédiából, a szabad enciklopédiából

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:

  • 16550 UART
  • Ethernet interfész
  • I²C interfész
  • PCI interfész

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]

Más szoft processzorok[szerkesztés]

Jegyzetek[szerkesztés]

  1. 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
  2. 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”
  3. 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]

Kapcsolódó szócikkek[szerkesztés]