Nios II

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
  • 32 × 32 bites általános célú regiszter
  • 32 bites állapotkód-regiszter
  • + több speciális / vezérlő regiszter

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:

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

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

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 hardver­specifiká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

  1. ↑ Altera. "Nios II Embedded Processor Backgrounder" (PDF).
  2. ↑ "Intel is discontinuing IP ordering codes listed in PDN2312 for Nios® II IP". Intel. Hozzáférés: 2025. január 22.
  3. ↑ "5 Reasons to Switch from SOPC Builder to Qsys". Altera. Hozzáférés: 2012. március 16.
  4. ↑ "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

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.

Források

További információk

Kapcsolódó szócikkek