RISC-V Tervező Kaliforniai Egyetem, Berkeley Bitek száma 32, 64, 128 Bevezetés 2010 Verzió Kialakítás RISC Típus load-store Kódolás változó, 32 bites, 16 bites tömörített Elágazás Compare-and-branch Bájtsorrend little-endianbig-endian és kettős bájtsorrend támogatott a kiterjesztésekben Utasításkészlet- kiterjesztések Nyílt igen, jogdíjmentes Regiszterek   Általános célú (benne egy mindig 0 értékű regiszter) Lebegőpontos

A RISC-V (angolul „risk-five”, azaz „ötös számú RISC”) egy nyílt szabványú számítógépes utasításkészlet-architektúra (ISA), amely a modern, megalapozott RISC elveken alapul. A legtöbb más ISA-tervezettel ellentétben a RISC-V nyílt forráskódú licencek alatt áll, amelyek használatáért nem kell fizetni. Számos cég kínál vagy jelentett be RISC-V hardvert, elérhetőek RISC-V támogatással rendelkező nyílt forráskódú operációs rendszerek, és az utasításkészletet számos népszerű szoftver eszközlánc is támogatja.

A RISC elveknek megfelelően a RISC-V ISA egy load-store (betöltő-tároló) architektúra, tehát a memória csak a betöltő és tároló utasításokon keresztül elérhető. Lebegőpontos utasításai az IEEE 754 szabványnak megfelelőek.

A RISC-V ISA tervezésében több teljesítményfokozó fogást alkalmaztak, például az utasításkészlet kódolásában az utasítás részeit kódoló bitmezőket úgy választották meg, hogy architekturálisan semleges módon minimalizálják a multiplexerek használatát a CPU dekódoló hardverében, és a közvetlen értékek legmagasabb helyi értékű bitjei is úgy lettek elhelyezve, hogy gyorsítsák az előjelkiterjesztést.

Az utasításkészletet a felhasználás széles skálájára tervezték. Az alap utasításkészlet 32 bites, azonos hosszú, 4 bájtos határra igazított utasításokból áll, de az ISA támogatja a változó utasításhosszú kiterjesztéseket is, amelyekben minden utasítás tetszőleges számú 16 bites csomagból állhat. Az utasításkészlet részhalmazai támogatják a kis beágyazott rendszereket, a személyi számítógépeket, a vektorprocesszoros szuperszámítógépeket és az adattárházakat kiszolgáló, 19 hüvelykes rackbe szerelt párhuzamos számítógépeket.

Az utasításkészlet specifikációja 32 bites és 64 bites címtartomány-változatokat definiál. A specifikáció tartalmaz egy 128 bites folytonos (lapos, flat) címtér-változatot, a 32 és 64 bites változatok kiterjesztéseként, de a 128 bites ISA továbbra is szándékosan "nem befagyasztott" állapotban maradt, mert még igen kevés gyakorlati tapasztalat van az ilyen nagy memóriarendszerekkel kapcsolatban.

A projekt 2010-ben indult a Kaliforniai Egyetemen, Berkeleyben, de jelenleg több közreműködő az egyetemhez nem kötődő önkéntes. Más akadémiai tervekkel ellentétben, amelyek jellemzően csak az egyszerűségre optimalizáltak, itt a tervezők célja az volt, hogy a RISC-V utasításkészlet a gyakorlatban alkalmazható számítógépek számára is megfelelő legyen.

2019 júniusi állapot szerint a felhasználói tér ISA 2.2-es verziója és a privilegizált ISA 1.11-es verziója befagyasztásra került, lehetővé téve a szoftver- és hardverfejlesztés folytatását. A felhasználói tér ISA-t, amelyet ekkor nem-privilegizált ISA-ra (Unprivileged ISA) neveztek át, frissítették, ratifikálták és a 20191213-as verzióban befagyasztották. A külső hibakeresési specifikáció 0.13.2 verziójú tervezetként áll rendelkezésre.

Alapvetés

A CPU tervezés számos egyéb területen meglévő jártasságot, szakértelmet igényel, mint például az elektronikus digitális logika, fordítóprogramok és operációs rendszerek. A tervezési költségek fedezésére a számítógép- ill. processzortervek kereskedelmi forgalmazói, mint például az Arm Ltd. és a MIPS Technologies, jogdíjat számítanak fel a terveik, szabadalmaik és szerzői jogaik használatáért.

Gyakran titoktartási megállapodásokat is megkövetelnek, mielőtt kiadnák a tervezetük részletes előnyeit leíró dokumentumokat. Sok esetben egyáltalán nem teszik közzé a tervezési döntéseik okait.

A RISC-V azzal a céllal indult, hogy egy olyan gyakorlati ISA-t hozzon létre, amely nyílt forráskódú, elméleti szinten használható, és bármilyen hardver- vagy szoftvertervezetben jogdíjak nélkül felhasználható. A projektben minden egyes tervezési döntés indoklását is kifejtik, legalábbis nagy vonalakban. A RISC-V szerzői a számítógép-tervezés terén jelentős tapasztalattal rendelkező kutatók, és a RISC-V ISA egy sor akadémiai számítógép-tervezési projekt, de leginkább a Berkeley RISC közvetlen továbbfejlesztése. A RISC-V részben azért jött létre, hogy segítse az ilyen projekteket.

A nagy és jelentékeny felhasználói közösség kiépítése és ezáltal a tervek és szoftverek felhalmozása érdekében a RISC-V ISA tervezői szándékosan támogatják a gyakorlati felhasználási esetek széles skáláját: a kompakt, a nagy teljesítményű és az alacsony fogyasztású valós megvalósításokat, elkerülve a túltervezettséget az adott mikroarchitektúra körében. A RISC-V sokrétűsége, számos lehetséges felhasználási területet lefedő tulajdonsága részben éppen a számos közreműködő által támasztott követelmények tervezett következménye.

A tervezők fő állítása az, hogy az utasításkészlet a számítógép kulcsfontosságú interfésze, mivel a hardver és a szoftver közötti kapcsolódási ponton helyezkedik el. Ha egy jó utasításkészlet nyílt és mindenki által elérhető lenne, akkor lehetővé válna a jelentősen nagyobb mértékű újrafelhasználás, ami drámaian csökkentené a szoftverköltségeket. Ez a hardvergyártók között is fokozottabb versenyt keltene, akik így több erőforrást fordíthatnának a (hardver-)tervezésre és kevesebbet a szoftvertámogatásra.

A tervezők azt állítják, hogy az utasításkészletek tervezésében egyre ritkábban bukkannak fel új elvek, mivel az elmúlt negyven év legsikeresebb tervei egyre jobban hasonlítanak egymásra. A megbukott tervezetek többsége az azokat finanszírozó cégek pénzügyi sikertelensége miatt hiúsult meg, nem pedig azért, mert az utasításkészletek technikailag gyengék voltak. Így egy jól megtervezett, jól megalapozott elvek alapján kialakított nyílt utasításkészletnek hosszú távú támogatást kell kapnia számos gyártótól.

A RISC-V ösztönzi a tudományos felhasználást is. Az integer részhalmaz egyszerűsége lehetővé teszi az alapszintű hallgatói gyakorlatokat, és elég egyszerű ISA ahhoz, hogy a kutatási gépek vezérlésére szolgáló szoftverek használhatók legyenek. A változó hosszúságú ISA teret nyit az utasításkészlet-bővítéseknek mind a hallgatói gyakorlatok, mind a kutatás számára, a különálló privilegizált utasításkészlet pedig lehetővé teszi az operációs rendszerek támogatását célzó kutatást a fordítóprogramok újratervezése nélkül. A RISC-V nyílt szellemi tulajdon paradigmája lehetővé teszi a járulékos, származtatott tervek közzétételét, újrafelhasználását és módosítását.

Története A Reduced Instruction Set Computing (RISC) kifejezés körülbelül 1980-ból származik. Már korábban is volt némi ismeret arról, hogy az egyszerűbb számítógépek hatékonyak lehetnek (pl. John Cocke kutatása az IBM Research-nél, IBM 801 processzor), de a tervezési elveket nem tették közzé széles körben. Az egyszerű, hatékony számítógépek mindig is tudományos érdeklődésre tartottak számot, és ennek eredményeként született meg a DLX RISC utasításkészlet a Computer Architecture: A Quantitative Approach c. mű„Számítógép-architektúra: Kvantitatív megközelítés”, magyarul nem jelent meg. első, 1990-es kiadásához, amelynek egyik szerzője David A. Patterson, aki később részt vett a RISC-V létrehozásában. A DLX-et oktatási célokra szánták; akadémikusok és amatőrök valósították meg programozható kaputömbökkel, de sohasem szánták kereskedelmi célú forgalmazásra.

Az ARM ISA licencdíjai igen magasak és az újabb processzortervek zárt forrásúak. Az ARM CPU-k 2. és korábbi verzióinak utasításkészlete nyilvános, a GNU Compiler Collection (GCC), egy népszerű szabad szoftveres fordítóprogram még mindig támogatja őket. Az ARM ISA-hoz három nyílt forráskódú processzormag létezik, de azokat soha nem gyártották.Free and Instant Access to Cortex-M CPUs on FPGA, ingyenes ARM Cortex-M1 és Cortex-M3 magok FPGA-ra Az OpenRISC egy DLX-en alapuló nyílt forráskódú ISA, a hozzá tartozó RISC tervek nyilvánosak, és teljes mértékű fordító- (GCC) és operációs rendszer (Linux) támogatással rendelkezik, bár ennek is kevés kereskedelmi implementációja van.

Krste Asanović a Berkeley-i Kaliforniai Egyetem professzora. Kutatásaiban felmerült az igény egy nyílt forráskódú számítógépes rendszerre, és 2010-ben úgy döntött, hogy egy rövid, háromhónapos nyári projekt keretében több végzős hallgatójával együtt kifejleszt és közzétesz egy ilyet. A terv egy mind az akadémiai, mind az ipari felhasználókat segítő utasításkészlet létrehozása volt.

A Berkeley-n dolgozó David Patterson csatlakozott az együttműködéshez, mivel ő volt a Berkeley RISC megalkotója, és a RISC-V az ötödik generáció Patterson RISC-alapú kooperatív kutatási projektjeinek hosszú sorában – a RISC-V innen kapta a nevét: a V mint a római 5-ös szám az ötödik változatot jelenti. Ebben a szakaszban a diákok alkották meg a kezdeti szoftvereket, szimulációkat és CPU-kialakításokat.

A RISC-V szerzői és az intézmény az ISA dokumentációt és számos CPU-tervet eredetileg BSD-licencek alá helyezték, ami lehetővé tette, hogy a származtatott művek – például a RISC-V csiptervek – akár nyíltak és szabadok, vagy zártak és szabadalmilag védettek legyenek. Magát az ISA specifikációt (azaz az utasításkészlet kódolását) 2011-ben nyílt forráskódúként tették közzé, minden jogot fenntartva.

A tényleges technikai jelentést (más szóval a specifikációt) később Creative Commons licenc alá helyezték, hogy lehetővé tegyék a külső közreműködők által végezhető továbbfejlesztést a RISC-V Alapítvány, majd a RISC-V International szervezeteken keresztül.

A RISC-V teljes történetét és előzményeit a RISC-V International honlapján tették közzé.

A RISC-V Alapítvány és a RISC-V International A kereskedelmi felhasználók megkövetelik, hogy az ISA stabil legyen, mielőtt egy olyan termékben használnák, amely hosszú évekig is eltarthat. E probléma megoldására 2015-ben megalakult a RISC-V Alapítvány, amely a RISC-V definíciójával kapcsolatos szellemi tulajdon birtoklására, fenntartására és közzétételére jött létre. Az eredeti szerzők és tulajdonosok átadták jogaikat az alapítványnak. Az alapítványt Calista Redmond vezérigazgató vezeti, aki 2019-ben vette át a szerepet, miután az IBM-nél nyílt infrastrukturális projekteket vezetett.

2019 novemberében a RISC-V Alapítvány bejelentette, hogy Svájcba költözik, az amerikai kereskedelmi szabályozásokkal kapcsolatos aggodalmakra hivatkozva. 2020 márciusától a szervezet egy svájci nonprofit üzleti szövetséggé alakult, és a nevét RISC-V International-ra változtatta.

2019-től a RISC-V International szabadon közzéteszi a RISC-V-t meghatározó dokumentumokat, és engedélyezi az ISA korlátlan használatát szoftverek és hardverek tervezéséhez. A módosítások jóváhagyásáról azonban csak a RISC-V International tagjai szavazhatnak, és csak a tagszervezetek használhatják a védjegyoltalom alatt álló kompatibilitási logót.

Díjak 2017: Az utasításkészlet megkapta a Linley Group elemzői díját a legjobb technológiáért

Tervezés ISA alap és kiterjesztések A RISC-V moduláris felépítésű, alternatív alaprészekből áll, amelyekhez opcionális bővítések járulhatnak. Az ISA alapot és a bővítményeket az ipar, a kutatóközösség és az oktatási intézmények közös erőfeszítésével fejlesztik. Az alap határozza meg az utasításokat (és azok kódolását), a vezérlési folyamatot, a regisztereket (és azok méretét), a memóriát és a címzést, a logikai ill. egész számokon végzett műveleteket és a segédműveleteket. Az alap önmagában megvalósít egy egyszerűsített általános célú számítógépet, teljes körű szoftveres támogatással, beleértve egy általános célú fordítóprogramot is.

A szabványos kiterjesztések úgy vannak meghatározva, hogy az összes szabványos bázissal és egymással is konfliktusmentesen együttműködjenek.