Refresh the page

A RISC-V okos felépítése

Érkezik a harmadik nagy processzorarchitektúra • Szerző: Michal Rybka

A RISC-V eleganciája nem csupán abban rejlik, hogy nyílt architektúrájú, hanem abban is, hogy már a kezdetektől moduláris felépítéssel tervezték. Míg az x86 több mint ezer utasítást, az ARM több százat tartalmaz, a RISC-V alapverziója mindössze 40 utasítást foglal magában, ha pedig a gyártó többre vágyik, utasításkiegészítéseket (extensions) alkalmazhat.

RISC-V

Minimális utasításkészlet

A RISC-V utasításmagja kicsi, és csak egész számokkal (integer) végzett műveleteket támogat. A specifikáció négy különböző utasításbázist különböztet meg: RV32I, RV32E, RV64I és RV128I, ahol az „I” az egész számokkal végzett műveleteket jelöli, a szám pedig az címzési busz szélességét adja meg: 32, 64, illetve a jövőben akár 128 bitet is (a 64 bittel nagyobb memóriabuszok használata várhatóan körülbelül 2030 körül lesz szükséges). Az RV32E kifejezetten mikrokontrollerekhez (embedded) készült, még kompaktabb változat: 32 helyett csak 16 munkaregisztert tartalmaz, és nem feltétlenül támogatja az időzítőket. A cél az, hogy csak a legszükségesebb minimum legyen meg, így a tervezők csak azokat a funkciókat adhatják hozzá, amelyekre valóban szükségük van.

Kiterjesztések és rugalmasság

A mag a processzor számára csak a legszükségesebb alapfunkciókat biztosítja, amelyeket kiegészítésekkel (extensions) lehet bővíteni. A kiterjesztéseket betűkkel jelölik, amelyek a funkciójukat fejezik ki: az F (Floating Point) a lebegő tizedesvesszős számításokhoz, a D (Double-precision Floating Point) a dupla pontosságú műveletekhez, a Q pedig a négyszeres pontosságú (Quad-precision Floating Point) műveletekhez tartozik. Egyes kiterjesztések már le vannak zárva (frozen), másokon még dolgoznak, és vannak jövőbeli kiterjesztések is, például a J, amely a dinamikusan fordított nyelvek támogatását célozza. A nyíltan specifikált kiterjesztéseken (standard extensions) túl a konkrét processzormodell saját, nem standard kiterjesztéseket (non-standard extensions) is tartalmazhat, amelyek nagyon specializáltak lehetnek, és akár ütközhetnek más kiterjesztésekkel is. Ezeket a gyártók teljesen a saját igényeik szerint alakíthatják, így a processzor rugalmasan testreszabható a konkrét felhasználásra.

Minden RISC-V processzor képes jelezni a program számára, hogy mely kiterjesztéseket támogatja. A már lezárt (frozen) kiterjesztések esetén a támogatás azt jelenti, hogy a processzornak minden utasítást ismernie kell az adott osztályból. Ha a program a processzornak olyan utasítást küld, amelyet az nem tud feldolgozni (illegal instruction, unsupported instruction), akkor kivétel (trap) keletkezik, amelyet az operációs rendszer kezelhet úgy, hogy a nem kompatibilis programot leállítja, vagy a hiányzó utasítást szoftveresen emulálja. Az utasítások szoftveres emulációja lassabb ugyan, de sok alkalmazásban ennek ellenére hasznos lehet.

Az „alulról felfelé építkezés” filozófiája

A specifikáció „alulról felfelé” építkezik, és „felfújható”, ami teljesen ellentétes más architektúrák filozófiájával, ahol általában csak újabb és újabb utasításokat adnak hozzá, és nagyon ritkán távolítanak el bármit. További különbség, hogy a hagyományos rendszereknél a fejlesztő határozza meg az utasításokat, és a gyártó az architektúrát jellemzően úgy módosítja, hogy saját kiegészítéseket ad hozzá. A RISC-V esetében a gyártó teljesen maga is megtervezheti az architektúrát, akár úgy, hogy teljesen az alapoktól indul, és nem kell senkitől engedélyt kérnie.

A teljes utasításkészlet-specifikáció (User Level ISA) ingyenesen letölthető a risc.org weboldalról.

i

Az utasításkészlet specifikációja

Try our cookies

Alza.cz a. s., Company identification number 27082440, uses cookies to ensure the functionality of the website and with your consent also to personalisage the content of our website. By clicking on the “I understand“ button, you agree to the use of cookies and the transfer of data regarding the behavior on the website for displaying targeted advertising on social networks and advertising networks on other websites.

More information
I understand Detailed settings Reject everything
P-DC1-WEB20