Ugrás a tartalomhoz

Nios II

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából
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.[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]

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.

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.

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.

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

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

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

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

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

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.

  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.

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.

További információk

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

Kapcsolódó szócikkek

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