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 | forrásszöveg szerkesztése]

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ő algorimusok 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 | forrásszöveg szerkesztése]

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 6 fokozatú lehet,
  • 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 | forrásszöveg szerkesztése]

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 licensz.

Open Source[szerkesztés | forrásszöveg szerkesztése]

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.[2]

Klónjai[szerkesztés | forrásszöveg szerkesztése]

Más szoft processzorok[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Michael Baxter, Peter Ryser: Beágyazott rendszerek ízlés szerint (magyar nyelven) (pdf) pp. 1-4. Linuxvilág, Kiskapu Kft., 2002. augusztus 1 – PBA, Virtex-II Pro FPGA és a MontaVista Linux
  2. 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 | forrásszöveg szerkesztése]

  • 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.

Források[szerkesztés | forrásszöveg szerkesztése]

További információk[szerkesztés | forrásszöveg szerkesztése]

Kapcsolódó szócikkek[szerkesztés | forrásszöveg szerkesztése]