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.[1]
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.[2]
Főbb jellemzők
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]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)
[szerkesztés | forrásszöveg szerkesztése]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)
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]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. 2 GiB 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
[szerkesztés | forrásszöveg szerkesztése]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 2 GiB 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
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]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.[3]
A szoftver létrehozása
[szerkesztés | forrásszöveg szerkesztése]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.[4]
Licencelés
[szerkesztés | forrásszöveg szerkesztése]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
[szerkesztés | forrásszöveg szerkesztése]- ↑ Altera. "Nios II Embedded Processor Backgrounder" (PDF).
- ↑ "Intel is discontinuing IP ordering codes listed in PDN2312 for Nios® II IP". Intel. Hozzáférés: 2025. január 22.
- ↑ "5 Reasons to Switch from SOPC Builder to Qsys". Altera. Hozzáférés: 2012. március 16.
- ↑ "GCC 15 Ends Support For Altera Nios II Embedded Processors". www.phoronix.com (angol nyelven). Hozzáférés: 2025. január 22.
Fordítás
[szerkesztés | forrásszöveg szerkesztése]Ez a szócikk részben vagy egészben a Nios II 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.