Nios II Tervező Altera / Intel Bitek száma 32 bites Bevezetés 2004 Kialakítás RISC Bájtsorrend little-endian Nyílt nem Regiszterek A Nios II egy 32 bites beágyazott processzorarchitektúra, amelyet specifikusan az Altera család FPGA integrált áramkörei számára terveztek. A Nios II számos fejlesztést tartalmaz az eredeti Nios architektúrához képest, amelyekkel a beágyazott számítástechnikai alkalmazások szélesebb körében alkalmazható, a digitális jelfeldolgozástól (DSP) a rendszervezérlésig.
A Nios II a 2000-ben bevezetett Nios szoft processzor utódja, amely az Altera első konfigurálható 16 bites beágyazott processzora volt.
Az Intel 2023-ban bejelentette a Nios II gyártásának megszüntetését, azzal, hogy utódja a RISC-V architektúrán alapuló Nios V lesz.
Főbb jellemzők Az eredeti Nios-hoz hasonlóan, a Nios II architektúra egy RISC lágy magos architektúra, amelyet teljes egészében Altera FPGA-k programozható logikájában és memóriablokkjaiban valósítottak meg. Elődjével ellentétben ez egy teljesen 32 bites kialakítás:
32 általános célú 32 bites regiszter, teljesen 32 bites utasításkészlet, adatút és címtartomány, egy utasításos 32 × 32 bites szorzás és osztás, amely 32 bites eredményt ad, léteznek kiterjesztett szorzóutasítások, amelyek 64 bites eredményt adnak.
A Nios II processzor lágymagos (soft core) természete lehetővé teszi a rendszertervező számára egyedi Nios II mag specifikálását és létrehozását, a kívánt egyedi alkalmazás követelményeire szabott módon. A rendszertervezők kiterjeszthetik a Nios II alap funkcionalitását például előre meghatározott memóriakezelő egység hozzáadásával, vagy új egyedi utasítások és egyéni perifériák definiálásával.
Egyedi utasítások A natív Nios II utasításokhoz hasonlóan, a felhasználó által definiált utasítások három operandusúak, legfeljebb két 32 bites forrásregiszterből fogadhatnak értékeket és opcionálisan visszaírják az eredményt egy 32 bites célregiszterbe. Egyedi utasítások használatával a rendszertervezők finomhangolhatják a rendszer hardverét a teljesítménycélok eléréséhez és az utasítások könnyen kezelhetők makróként C nyelven.
Egyedi perifériák A teljesítménykritikus rendszerek számára, amelyek a CPU-ciklusok legnagyobb részét valamely meghatározott kódszakasz végrehajtásával töltik, egy felhasználó által definiált periféria potenciálisan tehermentesítheti a processzort, úgy, hogy a szoftveres feladat végrehajtásának egy részét vagy egészét felhasználó által definiált hardveres logikára helyezi át, ami javíthatja az energiahatékonyságot vagy az alkalmazás feldolgozási képességét.
Memóriakezelő egység (MMU) Az Altera Quartus 8.0 verziójával bevezetett opcionális MMU lehetővé teszi a Nios II számára hardveres lapozást és védelmet igénylő operációs rendszerek futtatását, mint például a Linux kernel. MMU nélkül a Nios olyan operációs rendszerekre korlátozódik, amelyek egyszerűsített védelmet és virtuális memóriamodellt használnak: ilyenek a μClinux és a FreeRTOS.
Memóriavédelmi egység (MPU) A Quartus 8.0 szoftverrel bevezetett opcionális MPU az MMU-hoz hasonló memóriavédelmet biztosít, ám egyszerűbb programozási modellel és az MMU-val járó teljesítményveszteség (terheléstöbblet) nélkül.
Nios II CPU család A klasszikus Nios II 3 különböző konfigurációban kapható: Nios II/f (f mint fast, gyors), Nios II/s (standard), és Nios II/e (e mint economy, gazdaságos). Nios II gen2 két különböző konfigurációban kapható: Nios II/f (gyors), és Nios II/e (gazdaságos).
Nios II/f A Nios II/f magot a maximális teljesítmény elérésére tervezték, a mag méretének rovására. A Nios II/f főbb jellemzői a következők: külön utasítás- és adat-gyorsítótárak (512 B – 64 KiB) opcionális MMU vagy memóriavédelmi egység (MPU) hozzáférés max. 2 GiB külső címtartományhoz opcionális, szorosan csatolt memória az utasítások és adatok számára hat fokozatú futószalag a maximális DMIPS/MHz teljesítmény eléréséhez egyciklusos hardveres szorzás és tetszőleges lépésméretű léptetőregiszter (barrel shifter) opcionális hardveres osztás dinamikus elágazásbecslés legfeljebb 256 egyéni utasítás és korlátlan számú hardveres gyorsító JTAG debug modul opcionális továbbfejlesztések a JTAG debug modulhoz, ezek között hardver töréspontok, adat triggerek, és valós idejű nyomkövetés
Nios II/s A Nios II/s magot úgy tervezték, hogy egyensúlyt tartson fenn a teljesítmény és a költségek között. Ez a magimplementáció már nem támogatott az Altera Quartus II v.17 és újabb verziókban. A Nios II/s jellemzői a következők: utasítás-gyorsítótár hozzáférés max. külső címtartományhoz opcionális, szorosan csatolt memória az utasításokhoz öt fokozatú futószalag statikus elágazásbecslés hardveres szorzás, osztás és léptetés/eltolás opciókkal max. 256 egyéni utasítás JTAG debug modul opcionális továbbfejlesztések a JTAG debug modulhoz, közöttük hardver töréspontok, adat triggerek, és valós idejű nyomkövetés
Nios II/e A Nios II/e magot az FPGA-k lehető legkisebb logikai kihasználására tervezték. Ez különösen hatékony az alacsony költségű Cyclone II FPGA alkalmazásoknál. A Nios II/e jellemzői a következők: hozzáférés legfeljebb külső címtartományhoz JTAG debug modul komplett rendszerek kevesebb mint 700 LE (logikai elem) felhasználásával opcionális továbbfejlesztett debug képességek max. 256 egyéni utasítás szabad szoftver, nem szükséges hozzá licenc
Avalon kapcsolt hálózati interfész A Nios II az Avalon kapcsolóhálózatot használja kapcsolószövet interfészként a beágyazott perifériáihoz. A processzoralapú rendszerek hagyományos buszaival összehasonlítva, amelyek egyszerre csak egy buszmester számára teszik lehetővé a hozzáférését a buszhoz, az Avalon kapcsolóhálózat (switch fabric), szolga-oldali arbitrációs sémát használva, több mester egyidejű működését teszi lehetővé.
Fejlesztési folyamat A Nios II-re történő fejlesztés két külön lépésből áll: a hardvergenerálás és a szoftverkészítés lépéseiből.
A fejlesztés az Altera Embedded Design Suite (EDS) elnevezésű alkalmazáson belül történik. Az EDS tartalmaz egy teljes integrált fejlesztői környezetet, amely két külön lépésben kezeli a hardvert és a szoftvert.
Hardvergenerálási folyamat A Nios II hardvertervezők a Nios rendszer konfigurálásához és generálásához a Qsys rendszerintegrációs eszközt használják, amely a Quartus-II csomag része. A konfigurációs grafikus felhasználói felület (GUI) lehetővé teszi a felhasználók számára a Nios-II funkciókészletének kiválasztását, valamint a perifériák és be-/kimeneti blokkok hozzáadását (időzítők, memóriavezérlők, soros interfész, stb.) a beágyazott rendszerhez. Mikor a hardverspecifikáció elkészült, a Quartus-II elvégzi a szintézist, az elhelyezést és az útvonalválasztást (place & route) a teljes rendszer megvalósításához a megcélzott FPGA-n.
A Qsys felváltja a régebbi SOPC (System-on-a-Programmable-Chip) Buildert, ami szintén használható Nios II rendszer építésére, és amelyet még mindig ajánlanak az új projektekhez.
A szoftver létrehozása Egy külön csomag, az úgynevezett Embedded Design Suite (EDS), kezeli a szoftverfejlesztést. Az Eclipse IDE-n alapuló EDS tartalmaz egy C/C++ fordítót (amely a GNU eszközkészleten alapul), nyomkövető debuggert, és egy utasításkészlet-szimulátort. Az EDS lehetővé teszi a programozók számára, hogy alkalmazásukat szimulációban teszteljék, vagy letöltsék és futtassák a lefordított alkalmazást a tényleges FPGA hoszton.
Mivel a C/C++ fejlesztőlánc a GCC-n alapul, a Linuxra írt nyílt forráskódú szoftverek túlnyomó többsége lefordul és fut, minimális vagy semmi módosítással. Harmadik féltől származó operációs rendszereket is portoltak Nios II-re. Ezek közé tartozik a Micrium MicroC/OS-II, eCos (beágyazott valósidejű operációs rendszer), a Segger Microcontroller embOS, a ChibiOS/RT, a μCLinux és a FreeRTOS.
A GCC-ből a 15-ös verziótól kezdve kikerült a Nios II processzorok támogatása, a Nios II megszűnése miatt.
Licencelés Nios II összehasonlítható a MicroBlaze-zel, egy konkurens lágymagos CPU-val a Xilinx FPGA-családban. A MicroBlazével ellentétben, a Nios II licencelhető standard cellás ASIC-ekhez egy harmadik féltől származó IP-szolgáltatón, a Synopsys Designware-en keresztül. A Designware licenc birtokában a tervezők FPGA-platformról tömeggyártású ASIC-eszközre portolhatják a Nios-alapú terveket.
Jegyzetek
Fordítás
Források További információk Az Intel Nios II témájú honlapja Nios II Embedded Design Suite forum Nios community wiki RTEMS valós idejű operációs rendszer Cornell Egyetem ECE576 mikrokontroller tanfolyam Nios II használatával FreeRTOS demo dokumentáció Nios II-höz UPB ECE31289 tanfolyam Nios II használatával Kapcsolódó szócikkek LatticeMico8 LatticeMico32 MicroBlaze PicoBlaze Micon P200
Kategória:Szoft mikroprocesszorok Kategória:Mikroprocesszorok