# RISC-V

RISC-V (risc-five ahoskatua, Kaliforniako Unibertsitatean (Berkeley, 1981) garatu ziren RISC arkitekturan oinarritutako 5.belaunaldien kopuruari dagokio. Estandar irekien agindu-multzo arkitektura da (ISA ingelesez), RISCn ezarritako printzipioetan oinarritua. Beste diseinu gehienetan ez bezala, RISC-V kode irekiko lizentzien bidez ematen da, erabiltzeko tasarik behar ez dutenak. Zenbait konpainia RISC-V-en oinarritutako hardwarea eskaintzen dute edo iragartzen ari dira, RISC-V euskarria duten kode irekiko sistema eragileak sortu dira, eta agindu-multzoa hainbat software famatu eta tresna-katetan euskarria du.
RISCren arkitektura gisa, RISC-V-ren ISA kargatze-/biltegiratze-arkitektura da. Honen koma-higikariaren implementazioa IEEE-ren 754 erabiltzen du. ISA honen ezaugarri azpimarragarrien artean, aginduetarako bit eremu kokalekuak, PUZ batean multiplexadoreen erabilera sinplifikatzeko aukeratuak, arkitektura aldetik neutroa den diseinua, eta berehalako balioen bit garrantzitsuenak leku finkoetan kokatzea zeinu-luzapenak azkartzeko.
Erabilera-sorta zabal baterako diseinatuta dago agindu-multzoa. Oinarrizko agindu-multzoak berez 32 biteko agindu-luzera finkoa du, eta luzera aldakorreko luzapenak onartzen ditu ISAk, non agindu bakoitza 16 biteko edozein pakete luzera izan baitaiteke. Azpimultzoek sistema txertatu txikiak, ordenagailu pertsonalak, bektore-prozesadoreak dituzten superkonputagailuak eta 19 hazbeteko eskalan muntatutako ekipo paraleloak onartzen dituzte.
Agindu-multzoaren zehaztapenak 32 eta 64 biteko helbideen aldaera espazialak definitzen ditu. Zehaztapenean, 128 biteko helbide-espazio lau baten deskribapena jasotzen da, 32 eta 64 biteko aldagaien estrapolazioa bezala, baina 128 biteko ISA "ez izoztuta" nahita mantentzen da, oraindik esperientzia praktiko gutxi baitago hain memoria-sistema handiekin.
Proiektua 2010ean hasi zen Kaliforniako Unibertsitatean (Berkeley), baina orain gaur egungo kolaboratzaile asko unibertsitatera afiliatu gabeko boluntarioak dira. Beste diseinu akademiko batzuk ez bezala, erakusketarako soilik optimizatu ohi direla, RISC-V-ren diseinatzaileek agindu-multzoa konputagailu praktikoetarako erabilgarria izatea nahi zuten. 2019ko ekainetik aurrera, ISA-ren erabiltzaile-espazioaren 2.2 bertsioa eta ISA pribilegiatuaren 1.11 bertsioa "izoztuta" bezala utzi dira, softwarea eta hardwarea garatzea ahalbidetuz. ISA-ren erabiltzaile-espazioaren, orain ISA ez-pribilegiatua bezala ezaguna, 20191213 bertsio gisa eguneratu, berretsi eta izoztu zen. Kanpoko arazketa-zehaztapen bat zirriborro gisa erabil daiteke, 0.13.2 bertsioan.

## Justifikazioa

PUZaren diseinuak hurrengo diseinu-espezialitateetan esperientzia izatea eskatzen du: logika digital elektronikoa, konpiladoreak eta sistema eragileak. Tamaina honetako talde baten kostuak ordaintzeko, diseinu informatikoen hornitzaile komertzialek, hala nola Arm Ltd. eta MIPS Technologies-ek, egile-eskubideak kobratzen dituzte beraien diseinuak, patenteak eta egile-eskubideak erabiltzeagatik. Askotan, hauen diseinuen abantaila zehatzak deskribatzen dituzten dokumentuak argitaratu aurretik, ez dibulgatzeko akordioak sinatzea eskatzen dute. Kasu askotan, hauen diseinu-aukeren arrazoiak ez dituzte ematen.
RISCV-ren helburua ISA praktiko ireki bat sortzea da, akademikoki erabil daitekeena eta egile-eskubiderik gabeko hardware edo softwareen edozein diseinutan zabal daitekeena. Proiektuaren diseinu-erabaki bakoitza justifikatzen duten arrazoiak ere azaltzen dira, oro har bederen. RISCren sortzaileak ordenagailuen diseinuan funtsezko esperientzia duten akademikoak dira, eta RISC-V-ren ISA hainbat konputagailu-diseinu proiektu akademikoren zuzeneko garapena da, bereziki Berkeley RISCrena. RISC-V proiektu horiei guztiei laguntzeko sortu zen hasiera batean.
Erabiltzaile-komunitate zabal eta etengabea eraikitzeko eta, hartara, diseinuak eta softwarea metatzeko, RISC-V-ren ISA diseinatzaileek erabilera praktikoko kasu ugari babesten dituzte nahita: trinkotasuna, errendimendua eta ahalmen txikiko mundu errealeko inplementazioak, mikro-arkitektura jakin baterako gehiegi arkitekturatu gabe. Kolaboratzaile-oinarri handi baten beharrak zirela eta, RISC-V hainbat erabileratarako diseinatu zen.
Diseinatzaileen baieztapen nagusia da agindu-multzoa ordenagailuko interfaze giltzarria dela, hardwarearen eta softwarearen arteko interfazean baitago. Agindu-multzo on bat irekia izanda eta guztiek erabiltzeko moduan egonda, softwarearen kostua nabarmen murritz dezake berrerabilpena gehiago erabiltzeko aukera ematen baitu. Halaber, hardware-hornitzaileen artean lehia handiagoa sortuko luke, hauek baliabide gehiago eskaini baititzakete diseinuari eta gutxiago softwarearen euskarriari.
Diseinatzaileek diotenez, printzipio berriak arraro bihurtzen ari dira agindu-multzoen diseinuan, azken berrogei urteetako diseinu arrakastatsuenak gero eta antzekoagoak baitira. Porrot egin zuten diseinuen artean, gehienek enpresa babesleek arrakasta ekonomikorik izan ez zutelako porrot egin zuten, eta ez agindu-multzoak teknikoki eskasak zirelako. Beraz, ongi diseinatutako eta ondo ezarritako printzipioen arabera diseinatutako agindu-multzo ireki batek hornitzaile askoren epe luzeko laguntza erakarri dezake.
RISC-Vk ere erabilera akademikoa sustatzen du. Osoen azpimultzoaren sinpletasunak ikaslearen oinarrizko ariketak ahalbidetzen ditu, eta ikerketa-makinak software bidez kontrolatzeko bezain sinplea den ISA bat da. Luzera-aldakorreko ISAak agindu-multzoen luzapenetarako espazioa eskaintzen du, bai ikasleen ariketetarako, bai ikerkuntzarako, eta bereizitako agindu-multzo pribilegiatuak sistema eragilearen aldeko ikerketa ahalbidetzen du, konpiladoreak birdiseinatu gabe. RISCren jabetza intelektual irekiaren paradigmak diseinu eratorriak argitaratu, berrerabili eta aldatzeko aukera ematen du.

## Historia

RISC hitza 1980 ingurukoa da. Ordurako, bazekiten ordenagailurik sinpleenak eraginkorrak izan zitezkeela (adibidez, John Cocke IBM Research-en), baina diseinuaren printzipioak ez zeuden guztiz deskribatuta. Ordenagailu sinple eta eraginkorrak interes akademikokoak izan dira beti, eta ondorioz 1990ean RISC DLX agindu-multzoa Computer Architecture: A Quantitative Approach lehen ediziorako aurkeztu zen, David Patterson egilekide zela, eta ondoren RISC-V sorreran parte hartu zuena. DLX hezkuntza-erabilerarako zen; akademikoek eta zaleek ate programagarrien multzoak (FPGA) erabiliz ezarri zuten, baina inoiz ez zen merkataritza-hedapenerako erabili. ARMren PUZek, 2. bertsioak eta aurrekoak, jabetza publikoko agindu-multzoak zituzten, eta oraindik software libreko GNUren Konpiladoreen Bildumentzat (GCC) euskarria du. ISA honetarako iturri irekiko hiru diseinu proposamen daude, baina ez dira inoiz fabrikatu. OpenRISC kode irekiko ISA bat da, DLXn oinarritua, RISCrekin lotutako diseinuekin, eta GCC eta Linux-en inplementazioetan euskarri osoa dauka, baina inplementazio komertzial gutxi ditu.
Kaliforniako Unibertsitatean, Berkeley, Krste Asanoviipv-ek, kode irekiko sistema informatiko bat ikertzeko beharra zuen, eta 2010ean proiektu labur bat garatzea eta argitaratzea erabaki zuen, hiru hilabetez udan zehar, graduatu ondoko zenbait ikaslerekin batera. Asmoa erabiltzaile akademikoei zein industrialei laguntzea zen. David Pattersonek, Berkeleyn, bat egin zuen lankidetzarekin, Berkeleyko RISCa sortu baitzuen, eta RISC-Va izen bereko bosgarren belaunaldia da, RISCen oinarritutako lankidetza-ikerketako hainbat proiekturen emaitza da. Etapa horretan, ikasleek hasierako softwarea, simulazioak eta PUZren diseinuak hornitu zituzten.
RISC-Vren eta bere erakundearen egileek ISAren dokumentuak eta BSD lizentzien bidezko PUZren hainbat diseinu eskaini zituzten jatorriz, eta horiei esker RISC-V txipen diseinuak irekiak eta askeak izan daitezke, edo itxiak eta patentatuak. ISA espezifikazioa bera (agindu-multzoaren kodeketa) 2011n argitaratu zen kode ireki gisa, eskubide guztiak erreserbatuta. Txosten tekniko erreala (zehaztapenaren adierazpen bat), Creative Commons lizentzia pean argitaratu zen beranduago, kanpo-kontribuitzaileek RISC-V Fundazioaren bidez eta, ondorioz, RISC-V Internationalen bidez hobetzea ahalbidetzeko.
RISCren historia osoa argitaratu da RISCren web gunean.

### RISC-V Foundation eta RISC-V International

Merkataritza-erabiltzaileek ISA egonkor bat behar dute urte asko iraun dezakeen produktu batean erabili ahal izateko. Gai horri heltzeko, RISC-V Fundazioa 2015. urtean eratu zen, RISCren definizioarekin lotutako jabetza intelektuala eduki, mantendu eta argitaratzeko. Jatorrizko egileek eta jabeek beraien eskubideak eman dizkiote fundazioari. Calista Redmond CEOak zuzentzen du fundazioa, eta 2019an bere gain hartu zuen eginkizuna, IBMn azpiegitura irekiko proiektuen buru izan ondoren.
2019ko azaroan, RISC-V Fundazioak Suitzan birkokatuko zela jakinarazi zuen, Estatu Batuetako merkataritza-erregulazioei buruzko kezkak alegatuz. 2020ko martxoan, erakundeak RISC-V International izena jaso zuen, irabazi asmorik gabeko Suitzako elkartea.
2019tik aurrera, RISC-V International erakundeak libreki argitaratzen ditu RISC-V definitzen duten dokumentuak, eta softwarea eta hardwarea diseinatzeko ISA mugarik gabe erabiltzeko aukera ematen du. Hala ere, RISC-V Internationaleko kideek bakarrik bozka dezakete aldaketen alde, eta erakunde kideek bakarrik erabiltzen dute elkargarritasun komertzialaren logotipoa.

### Sariak

* 2017: Linley taldeko analisten aukera saria teknologia onenagatik (agindu-multzorako)

## Diseinua
### ISA oinarria eta luzapenak

RISC-Vk diseinu modularra du, oinarri alternatiboko piezekin, eta aukerako luzapen gehigarriak dituzte. ISA oinarria eta haren eremuak industriaren, ikerketa-komunitatearen eta hezkuntza-erakundeen arteko ahalegin kolektiboan garatzen dira. Oinarriak aginduak (eta horien kodetzea), kontrol-fluxua, erregistroak (eta haien tamainak), memoria eta helbideraketa, manipulazio logikoa (i.e., osoa) eta osagarriak zehazten ditu. Oinarriak berak bakarrik erabilera orokorreko ordenagailu sinple bat inplementa dezake, softwarearen euskarri osoarekin, helburu-orokorreko konpiladore bat barne.
Luzapen estandarrak oinarri estandar guztiekin eta elkarren artean gatazkarik gabe lan egiteko zehazten dira.
RISC-V ordenagailu askok agindu konprimituak inplementa ditzakete energia-kontsumoa, kodearen tamaina eta memoriaren erabilera murrizteko. Hiperbisoreei eta birtualizazioari euskarria emateko etorkizuneko planak ere badaude.
Gainbegiratzaile agindu-multzoaren luzapenarekin batera, S, RVGC bat, xede orokorreko sistema eragile bati behar bezala laguntzeko beharrezkok diren agindu guztiak definitzen ditu.
ISA oinarria eta luzapenak :
| Izena | Merkantziaren izendapena | Bertsioa | Egoera | agindu-zenbakia |
| Oinarria |||||
| RVWMO | Memoria-ahul ordena | 2,0 | Berretsia | |
| RV32I | Oinarrizko osoko agindu-multzoa, 32-bit | 2,1 | Berretsia | 40 |
| RV32E | Oinarrizko osozko agindu-multzoa (txertatuta), 32-bit, 16 erregistro | 1,9 | Irekia | 40 |
| RV64I | Oinarrizko osoko agindu-multzoa, 64-bit | 2,1 | Berretsia | 15 |
| RV128I | Oinarrizko osoko agindu-multzoa, 128-bit | 1,7 | Irekia | 15 |
| Luzapena |||||
| M | Osoko zatiketentzat eta biderketentzat luzapen estandarra | 2,0 | Berretsia | 8 (RV32) 13 (RV64) |
| A | Agindu atomikoetarako luzapen estandarra | 2,1 | Berretsia | 11 (RV32) 22 (RV64) |
| F | Preziso bakarreko koma-higikorretarako luzapen estandarra | 2.2 | Berretsia | 26 (RV32) 30 (RV64) |
| D | Preziso bikoitzeko koma-higikorretarako luzapen estandarra | 2.2 | Berretsia | 26 (RV32) 32 (RV64) |
| Zicsr | Kontrol- eta egoera-erregistroa (CSR) | 2,0 | Berretsia | 6 |
| Zifencei | Agindu bilaketarako hesia | 2,0 | Berretsia | 1 |
| G | IMAFDZicsr_Zifencei oinarri eta luzapeneen laburdura | — | — | |
| Q | Prezisio laukoitzeko koma-higikorreko luzapen estandarra | 2.- | Berretsia | 28 (RV32) 32 (RV64) |
| L | Koma-higikor hamartarretarako luzapen estandarra | 0,0 | Irekita | |
| C | Agindu konprimatuen luzapen estandarra | 2,0 | Berretsia | 40 |
| B | Bitak manipulatzeko luzapen estandarra | 1,0 | Berretsia | 43 |
| J | Dinamikoki itzulitako lengoaietarako luzapen estandarra | 0,0 | Irekita | |
| T | Transakzio-memoriarako luzapen estandarra | 0,0 | Irekita | |
| P | SIMD aginduetarako luzapen estandarra | 0,9,10 | Irekita | |
| V | Bektore-eragiketetarako luzapen estandarra | 1,0 | Izoztuta | 187 |
| K | Kriptografia eskalarrerako luzapen estandarra | 1,0 | Berretsia | 49 |
| N | Erabiltzaile-mailaren etenetarako luzapen estandarra | 1,1 | Irekita | 3 |
| H | Hiperbisore luzapen estandarra | 1,0 | Berretsia | 15 |
| S | Gainbegiratzaile-mailako aginduetarako luzapen estandarra | 1,12 | Berretsia | 4 |
| Zam | Atomiko deslerrokatuak | 0,1 | Irekia | |
| Ztso | Gordeketa ordena totala | 0,1 | Izoztuta | |
32-bit RISC-V agindu-formatuak :
| Formatua | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit | Bit |
| Formatua | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Erregistro/erregistro | funct7 | funct7 | funct7 | funct7 | funct7 | funct7 | funct7 | rs2 | rs2 | rs2 | rs2 | rs2 | rs1 | rs1 | rs1 | rs1 | rs1 | funct3 | funct3 | funct3 | rd | rd | rd | rd | rd | opcode | opcode | opcode | opcode | opcode | opcode | opcode |
| Berehalakoa | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | imm[11:0] | rs1 | rs1 | rs1 | rs1 | rs1 | funct3 | funct3 | funct3 | rd | rd | rd | rd | rd | opcode | opcode | opcode | opcode | opcode | opcode | opcode |
| Goi berehalakoa | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | imm[31:12] | rd | rd | rd | rd | rd | opcode | opcode | opcode | opcode | opcode | opcode | opcode |
| Store | imm[11:5] | imm[11:5] | imm[11:5] | imm[11:5] | imm[11:5] | imm[11:5] | imm[11:5] | rs2 | rs2 | rs2 | rs2 | rs2 | rs1 | rs1 | rs1 | rs1 | rs1 | funct3 | funct3 | funct3 | imm[4:0] | imm[4:0] | imm[4:0] | imm[4:0] | imm[4:0] | opcode | opcode | opcode | opcode | opcode | opcode | opcode |
| Adarkatu | [12] | imm[10:5] | imm[10:5] | imm[10:5] | imm[10:5] | imm[10:5] | imm[10:5] | rs2 | rs2 | rs2 | rs2 | rs2 | rs1 | rs1 | rs1 | rs1 | rs1 | funct3 | funct3 | funct3 | imm[4:1] | imm[4:1] | imm[4:1] | imm[4:1] | [11] | opcode | opcode | opcode | opcode | opcode | opcode | opcode |
| Jauzia | [20] | imm[10:1] | imm[10:1] | imm[10:1] | imm[10:1] | imm[10:1] | imm[10:1] | imm[10:1] | imm[10:1] | imm[10:1] | imm[10:1] | [11] | imm[19:12] | imm[19:12] | imm[19:12] | imm[19:12] | imm[19:12] | imm[19:12] | imm[19:12] | imm[19:12] | rd | rd | rd | rd | rd | opcode | opcode | opcode | opcode | opcode | opcode | opcode |
| opcode (7 bit): aginduko 6 formatu-motetatik zein da partzialki zehazten du. funct7 eta funct3 (10 bit): bi eremu horiek, opcode eremutik haratago, egin beharreko eragiketa zehazten dute. rs1, rs2 edo rd (5 bit): lehen eragigaia (i.e., iturburu-erregistroa), bigarren eragigaia eta konputazioaren emaitza zein helburu-erregistrori zuzenduko zaion zehazten du, indizearen arabera, erregistroa, resp. |||||||||||||||||||||||||||||||||
Inplementa daitezkeen funtzioen konbinazioak saiesteko, nomenklatura bat definitzen da, berretsitako ISA zehaztapen ez-pribilegiatuaren 27. kapituluan zehazteko. Agindu-multzoaren oinarria aurrena zehazten da, eta RISCrako erregistroaren bit-zabalera eta aldaera kodetzen dira: RV64I edo RV32E adibidez. Hona hemen egindako luzapenak zehazten dituzten letrak, aurreko koadroko ordenaren arabera. Letra bakoitzaren atzetik aukera nagusiko zenbaki bat, "p" eta aukera txikiko zenbaki bat jar daitezke. 0 balioan etengo da bertsio txikiko zenbaki bat falta bada, eta 1.0 bertsio-zenbaki oso bat falta bada. Beraz, RV64IMAFD honela idatz daiteke: RV64I1p0M1p0A1p0F1p0D1p0 edo sinplifikatu, RV64I1M1A1F1D1 gisa. Irakurgarritasuna errazteko luzapenen arteko azpimarrako erabil daitezke, adibidez, RV32I2_M2_A2.
Oinarrizko, osoko zabalduak eta koma-higikorreko kalkuluak, eta multinukleo konputaziorako sinkronizazio-primitibo kalkuluak, oinarria eta MAFD luzapenak beharrezkoak dira helburu orokorreko konputazioa kalkulatzeko, eta, beraz, G laburketa dute.
Sistema txertatu baterako 32 biteko ordenagailu txiki bat RV32EC izan liteke. 64 biteko ordenagailu handi bat RV64GC izan daiteke adibidez (RV64IMAFDCicsr_Zifencei-ren laburdura).
Luzapen kopurua handitu ahala, estandarrak orain luzapenak "Z" bakar batek izendatzea aurreikusten du, izen alfabetiko bat eta aukerako bertsio zenbaki bat jarraiturik. Adibidez, Zifenceik bilaketa aginduaren luzapena izendatzen du. Zifencei2 eta Zifencei2p0, 2.0 bertsioa. Konbentzioz "Z" hizkiaren ondorengo lehen hizkiak lotura estuena duen alfabeto-luzapenaren kategoria adierazten du: IMAFDQLCBJTPVN. Beraz, gaizki lerrokatutako agindu atomiarako Zam luzapena "A" luzapen estandarrarekin lotuta dago. Karaktere bakarreko luzapenak ez bezala, Z luzapenak azpimarrekin bereizita egon behar dute, kategoriaren arabera multzokatuta eta, ondoren, kategoria bakoitzaren barruan, alfabetikoki. Adibidez, Zicsr_Zifencei_Zam.
Gainbegiratzailearen pribilegio-mailaren berariazko luzapenak modu berean izendatzen dira, "S" aurrizkirako erabiliz. Hiperbisore-mailako luzapen espezifikoak "H" aurrizkirako erabiliz izendatzen dira. Makinaren maila-luzapenek "Zxm" hiru letrak dituzte aurrez ezarrita. Gainbegiratzailea, hiperbisorea eta makina mailako agindu-multzoen luzapenak ez dira hain pribilegiatuak.
RISC-Vren garatzaileek agindu ez-estandarren multzoen luzapenak sor ditzakete. Hauek "Z" izeneko konbentzioari jarraitzen diote, baina "X" aurrizki gisa. Luzapen estandar guztien ondoren zehaztu behar dira, eta luzapen ez-estandar batzuk zerrendatzen badira, alfabetikoki zerrendatu behar dira.

#### Profilak eta plataformak

ISAko hautaketa-zerrenda estandarren profilak eta plataformak eztabaidatzen ari dira.
| « | ... Malgutasun hori diseinu espezializatu bat optimizatzeko erabil daiteke, aplikazio baterako behar diren ISA ezaugarrien multzo zehatza soilik sartuz, baina malgutasun berak ISA aukeretan eztanda konbinatoriora ere eramaten du. Profilek ISAren aukera-multzo askoz txikiago bat zehazten dute, erabiltzaile gehienentzat balio handiena hartzen duena, eta, beraz, software-komunitateari baliabideak kontzentratzeko aukera ematen diona software-ekosistema aberats baten eraikuntzan. | » |
| « | Plataformaren espezifikazioak softwarearen eta hardwarearen arteko elkarreragingarritasun-baldintzak zehazten ditu. Plataforma-politikak plataformaren zehaztapen honetan erabilitako terminoak definitzen ditu. Plataforma-politikak beharrezko xehetasunak ere ematen ditu plataformaren irismenari, estaldurari, izenari, bertsioari, egiturari, bizi-zikloari eta bateragarritasun-erreklamazioei dagokienez, plataforma zehazteko. | » |

### Erregistro-multzoak

| Erregistroaren izena | Izen sinbolikoa | Deskripzioa | Nork gordeta |
| 32 oso erregistro ||||
| x0 | Zero | Beti zero | |
| x1 | ra | Itzulera-helbidea | Deitzaileak |
| x2 | sp | Pilaren erakuslea | Deitutakoak |
| x3 | gp | Adierazle orokorra | |
| x4 | tp | Hari-erakuslea | |
| x5 | t0 | Aldi baterako / itzulera helbide alternatiboa | Deitzaileak |
| x6–7 | t1–2 | Aldi baterakoa | Deitzaileak |
| x8 | s0/fp | Gordetako erregistroa / koadro-erakuslea | Deitutakoak |
| x9 | s1 | Gordetako erregistroa | Deitutakoak |
| x10–11 | a0–1 | Funtzioaren argumentua / itzulerar-balioa | Deitzaileak |
| x12–17 | a2–7 | Funtzioaren argumentua | Deitzaileak |
| x18–27 | s2–11 | Gordetako erregistroa | Deitutakoak |
| x28–31 | t3–6 | Aldi baterakoa | Deitzaileak |
| 32 koma-higikorreko erregistro ||||
| f0–7 | ft0–7 | Aldi baterako koma-higikorrak | Deitzaileak |
| f8–9 | fs0–1 | Gordetako koma-higikorreko erregistroak | Deitutakoak |
| f10–11 | fa0–1 | Koma-higikorreko argumentuak / itzulera-balioak | Deitzaileak |
| f12–17 | fa2–7 | Koma-higikorreko argumentuak | Deitzaileak |
| f18–27 | fs2–11 | Gordetako koma-higikorreko erregistroak | Deitutakoak |
| f28–31 | ft8–11 | Aldi baterako koma-higikorrak | Deitzaileak |
RISC-Vk 32 (edo 16 bariante txertatuetan) erregistro oso ditu, eta koma-higikorraren luzapena inplementatzen denean, 32 koma-higikorreko erregistro bereiziak. Memorian sartzeko aginduetan izan ezik, aginduek erregistroak helbideratzen dute bakarrik.
Lehenengo osoko erregistroa zero erregistro bat da, eta gainerakoak helburu orokorreko erregistroak dira. Zero erregistroan gordeketa eragiketa batek ez du eraginik izango, eta irakurketak beti 0 emango du. Zero erregistroa kokapen-markatzaile gisa erabiltzeak agindu-multzoa sinpleagotzea ahalbidetzen du.
move rx to ry bihurtzen da add immediate 0 to rx and store in ry .
Kontrol- eta egoera-erregistroak daude, baina erabiltzaile-moduko programak errendimendua neurtzeko eta koma-higikorrak kudeatzeko erabiltzen direnak soilik atzitu daitezke.
Hainbat erregistro gordetzeko eta berrezartzeko agindurik ez da existitzen. Alferrikakoak, konplexuegiak eta agian motelegiak zirela uste zen.

### Memoriarako sarbidea

RISC diseinu asko bezala, RISC-V kargatze- eta biltegiratze-arkitektura da: aginduek erregistroak baino ez dute atzitzen, datuak memoriara eta memoriatik transmititzen dituzten karga- eta biltegiratze-aginduekin.
Kargatzeko eta biltegiratzeko agindu gehienek 12 biteko offset bat eta bi erregistro-identifikatzaile dituzte. Erregistro bat oinarrizko erregistroa da. Beste erregistroa iturria (biltegiratze baterako) edo norakoa (karga baterako) da.
Offseta oinarrizko erregistro bati gehitzen zaio helbidea lortzeko. Helbidea oinarrizko erregistro bat gehi offset gisa eratuz gero, agindu banakoak datu-egiturak atzitzea baimendu dezake. Adibidez, oinarrizko erregistroak pila baten goiko aldea adierazten badu, banakako aginduak azpierrutina baten aldagai lokaletara sar daitezke pilan. Era berean, kargatzeko eta biltegiratzeko aginduak record-estiloko egitura batera edo mapatutako Sarrera/Irteera gailu batera sar daitezke. Zero erregistro konstantea oinarrizko helbide gisa erabiltzeak agindu bakarrak ematen ditu memoriara zero helbidetik hurbil sartzeko.
Memoria 8 biteko byte gisa helbideratzen da, little-endian ordenako aginduekin eta kodea exekutatzen den exekuzio-inguruneko interfazeak definitutako byte ordenako datuekin. Hitzak, erregistroaren tamaina arte, kargatzeko eta biltegiratzeko aginduekin atzitu daitezke.
RISC-Va, hasieran, little-endian gisa zehaztu zen, familiako beste ordenagailu arrakastatsu batzuen antza hartzeko, adibidez, x86. Horrek ere PUZ baten konplexutasuna eta kostea murrizten ditu pixka bat da, hitzen tamaina guztiak ordena berean irakurtzen baititu. Adibidez, RISC-V agindu-multzoak byte bidez helbideratutako agindutik abiatuta deskodetzen hasten da. Big-endian eta big-endianeko aldaerak definitu ziren ere big-endian lerrokadura asumitzen duten kode heredatuen oinarriak jasateko.
Exekuzio-inguruneko interfaze bati esker, atzitutako memoria-helbideak ez dira hitz-zabalerarekin lerrokatzen, baina helbideekin lerrokatutako atzipenak azkarragoak izan daitezke; adibidez, PUZ sinpleek lerrokadura-failaren eten batek bultzatutako software motelaren emulazioarekin lerrokatu gabeko sarbideak ezar ditzakete.
RISCren agindu-multzo askok bezala (eta agindu-multzo konplexu batzuek (CISC), hala nola x86 eta IBM System/360 eta haren ondorengoek z/Architecture bidez), RISC-V-k ez du erregistroetara berriro idazten duen helbideratze-modurik. Adibidez, ez da automatikoki inkrementatzen.
RISC-Vek PUZren edo harien artean partekatutako memoria-sistemak kudeatzen ditu, exekuzio-hari batek bere memoria-eragiketak programatutako ordenan ikusten dituela ziurtatuz. Baina harien eta S/I gailuen artean, RISC-V sinplifikatu egiten da: ez du memoria-eragiketen ordena bermatzen, berariazko aginduek izan ezik, hala nola hesiak (fence).
Hesi-agindu (fence) batek aurreko eragiketen emaitzak beste hari batzuen edo S/I gailuen ondorengo eragiketetan ikus daitezkeela bermatzen du. fencek, memoriaren eta mapatutako S/I eragiketen konbinazio-ordena berma dezake. Adibidez: memoria irakurri eta idazteko eragiketak bereiz ditzakezu, S/I eragiketei eragin gabe. Edo, sistema batek memoriarekin paraleloan S/I gailuak erabil baditzake, hesiak ez ditu bata bestearen zain jarri behar. Hari bat duen PUZak nop gisa deskodetu dezake fence.
PUZ RISC batzuek (adibidez, MIPS, PowerPC, DLX eta Berkeleyren RISC-I) 16 biteko offset-a ezartzen dute karga eta biltegiratzetan. Goiko 16 bitak ezartzen dituzte, load upper word aginduaren bidez bidez. Horri esker, hitz-erdien goi-balioak balioak erraz ezar daitezke bitik desplazatu gabe. Hala ere, hitz-erdiaren goi-agindu erabilera gehienak 32 biteko konstanteak sortzen ditu, helbideak bezala. RISC-V-k SPARCren antzeko 12 biteko offset eta 20 biteko set upper aginduen konbinazio bat erabiltzen du. 12 biteko offset txikiagoa 32 biteko karga eta biltegiratze agindu trinkoak 32 erregistrotatik bi aukeratzen laguntzen dio, baina oraindik ere nahikoa bit dituzte RISC-Vren luzera-aldakorreko aginduak kodetzeko.

### Berehalakoak

RISC-V-k 32 biteko konstanteak eta helbideak erabiltzen ditu, 32 biteko erregistro bateko goiko 20 bitak ezartzen dituzten aginduekin. Load upper immediate (lui) berehalako karga 20 bitekoa da, 31tik 12ra. Gero, bigarren agindu batek addi 12 biteko beheko zatia ezar dezake. Zenbaki edo helbide txikiak zero erregistroa erabiliz eratu daitezke lui ordez.
Metodo hau zabaldu egiten da posizio independenteko kodea ahalbidetzeko, agindu bat gehituz, auipc zeinek helbideko goiko 20 bit sortzen dituen programaren kontagailuari offset bat gehituz eta emaitza oinarrizko erregistro batean gordez. Horri esker, programa batek programaren kontagailuarekiko erlatiboa den 32 biteko helbideak sortzea ahalbidetzen du.
Oinarrizko erregistroa, maiz, dagoen bezala erabil daiteke, load eta storeren 12 biteko offsetekin. Beharrezkoa bada, addi-k erregistro bateko beheko 12 bitak ezar ditzake. 64 bit eta 128 biteko ISA-etan, lui eta auipc-k zeinua luzatzen dute helbide handiagoak lortzeko.
Zenbait PUZ azkarrek agindu-konbinazioak agindu bateratu bat gisa interpreta ditzakete. lui edo auipc egokiak izan daitezke jalr, addi, load edo storerekin fusionatzeko.

### Azpierrutinen deiak, jauziak eta adarrak

RISC-Vren jal (jauzi eta lotura) azpierrutina deiak, bere itzulera-helbidea erregistro batean jartzen du. Hau azkarragoa da ordenagailu-diseinu askotan, memoria-atzipenak aurrezten baititu, memorian pila batera itzulera-helbidea zuzenean bultzatzen duten sistemekin alderatuta. jal-ek 20 biteko zeinudun offset bat du (biko osagarrian). Offseta 2rekin biderkatzen da, eta gero PCra gehitzen da, 32 biteko agindu bati dagokion helbide erlatiboa sortzeko. Emaitza 32 biteko helbide bat ez bada (adibidez, 4rekiko zatigarria), PUZak salbuespen bat sortu dezake.
RISC-V PUZak kalkulatutako helbideetara jump and link-register (jalr agindua) erabiliz jauzi egiten dute. jalr jal-ren antzekoa da, baina helburu-helbidea 12 biteko offset bat oinarrizko erregistro bati erantisz kalkulatzen du. (Aldiz, jalek 20 biteko offset handiago bat eransten dio PCari.)
jalr-en bit formatua erregistro-erlatiboen load eta storeren bezalakoa da. Haiek bezala, jalr oinarrizko erregistro bateko goiko 20 bitek ezartzen dituzten jauziekin erabil daiteke, 32 biteko adarrak egiteko, bai norabide absolutura (lui erabiliz), bai PC erlatibo batera (posizio independenteko kodeentzat auipc erabiliz). (Oinarrizko helbide konstante zero bat erabiltzeak aukera ematen du agindu bakarreko deiak egiteko helbide txiki batera (offsetera), finko positibo edo negatibora.)
RISC-V-k jal eta jalr birziklatzen ditu, PC-arekiko erlatibo diren 20 biteko jauzi baldintzagabeak eta 12 biteko erregistroetan oinarritutako jauzi baldintzagabeak lortzeko. Jauziek lotura-erregistroak zerora ezartzen dute itzulera-helbiderik gorde ez dezan.
RISC-V-k ere jalr birziklatzen du azpirrutina batetik itzultzeko: Hau egiteko, jalr-ren oinarrizko erregistroa jal edo jalr-k gordetako lotura-erregistroa izateko ezarrita dago. Jalr offseta zero da, eta lotura-erregistroa zero da; beraz, ez dago offsetik, eta ez da inolako itzulera-helbiderik gordetzen.
RISCren diseinu askok bezala, azpirrutinazko dei batean, RISC-Vren konpiladore batek banakako aginduak erabili behar ditu pilan erregistroak hasieran gordetzeko, eta, ondoren, pilatik irteeran berrezartzeko. RISC-V-k ez du save multiple (hainbat gorde) edo restore multiple (hainat berrezarri) erregistro-agindurik. Uste zen horrek PUZa konplexuegia eta, seguruenik, motelegia egiten zuela. Horrek kode-tarte handiagoa hartu dezake. Diseinatzaileek kodearen tamaina murrizteko liburutegi-errutinak erregistroak gorde eta berrezartzeko erabiltzeko asmoa zuten.
RISC-V-k ez du baldintza-kode erregistrorik, ez bit eramangarririk. Diseinatzaileek uste zuten kode kondizionalek PUZ azkarrak konplexuagoak bihurtzen dituztela baldintza-kodeek, aginduak betearazte-etapa desberdinetan elkarrekintzara behartzen dituztelako. Aukera horren ondorioz, zehaztasun anitzeko aritmetika konplexuagoa da. Gainera, zenbakizko lan batzuek energia gehiago behar dute. Horren ondorioz, iragarpena (aginduen baldintzazko exekuzioa) ez dago eskarritua. Diseinatzaileek diotenez, oso azkar eta ordenaz kanpo lan egiten diren PUZen diseinuek, nolanahi ere, iragarpena egiten dutela, alderaketa-adarra eta baldintzazko kodea paraleloan egitean, eta, gero, erabili gabeko ibilbidearen ondorioak baztertzean. Gainera esaten dute PUZ sinpleagoetan, adarkapenaren iragarpena, iragarpena baino baliotsuagoa dela diote, eta horrek baldintzapeko adarrekin lotutako blokeaketa gehienak prebeni ditzake. Predikaziorik gabeko kodea handiagoa da, adar gehiagorekin, baina esaten dute, halaber, agindu-multzo konprimitu batek (RISCren C multzoak bezala) arazo hori konpontzen duela kasu gehienetan.
Horren ordez, RISC-V-k adar motzak ditu konparazioak egiten dituztenak: equal, not-equal, less-than, unsigned less-than, greater-than edo equal eta unsigned greater-than edo equal. Hamar konparazioko edarrak sei intrukzio bakarrik erabilita inplementatu dira, mihiztatzailean eragigaien ordena alderantzikatuz. Adibidez, branch if greater than, egin daiteke less-than erabiliz, operazioen ordena aderantziz eginez.
Konparatutako adarrek zeinu gabeko 12 biteko tartea dute eta jauzia erlatiboa da PC-arekiko.
RISC-ren arkitektura batzuetan ez bezala, RISC-V-k ez du adarkapen atzerapen-lekurik, adar-agindu baten ondoren dagoen posizioa, adarra hartzen den ala ez exekutatzen den agindu batekin bete daiteke. RISC-V-k adarraren atzerapen-lekua alde batera uzten du, ziklo askotako PUZak, superscalarrak eta instrukzio-hodi luzeak zailtzen baititu. Adarretako iragarpen dinamikoek, adarkaketa atzeratuen beharra murrizteko adinako arrakasta izan dute.
Adar batekin topo egiten duen lehen aldian, RISC-V PUZek adar negatiboa erlatibo bat dela suposatu behar dute (adibidez: offsetaren seinale-zatia "1" dela. Horrek esan nahi du atzeraka doan adar bat begizta bat dela, eta hodi sinpleetako PUZek hodia aginduez bete ahal izateko norabide lehenetsia ematen du. Horrez gain, RISC-V-k ez du adarkatze iragarpenik behar, baina oinarrizko inplementazioek gehitu dezakete. RV32I "HINT" aginduko espazio bat gordetzen du, gaur egun adarren gaineko pistarik ez duena. RV64I-k gauza bera egiten du.

### Multzo aritmetiko eta logikoak

RISC-V-k matematika osokoen gutxieneko multzo batean (I multzoa) jariatzen du, batuketa, kenketa, bit-aldaketa, logika bitarra eta adarrekin. Hauek RISC-V agindu-multzo gehienak simula ditzakete software bidez. (Agindu atomikoak salbuespen nabarmena dira.) Osokoetarako RISC-V aginduek bit-field operazioak eta count leading zero falta dute, normalean koma-higikorreko eragiketak azkartzeko erabiliak osokoetarako prozesadoreetan. Hala ere, bitak manipulatzeko luzapenean, Zbb, Zba eta Zbs-en luzapenek osoko agindu gehigarriak dituzte, count leading zero agindua barne.
Zenbaki osoak biderkatzeko aginduek (M multzoa) zeinudun eta zeinu gabeko biderketa eta zatiketa dute. Doitasun bikoitzeko osokoen biderketa eta zatiketa egiteko aukera dago. ISA dokumentuak gomendatzen du CPUen eta konpiladoreen egileek altako eta bajako biderketa eta zatiketarako sekuentzia estandarizatu bat bateratzea, ahal bada.
Koma higikorreko aginduek (F multzoa) dute konparaketa-adarrak eta doitasun bakunerako aritmetika, osokoetarako aritmetikaren antzekoak. Koma higikorreko 32 erregistro gehiago behar ditu. Hauek osokoen erregistroetatik bereizita daude. Doitasun bikoitzeko koma higikorreko aginduetan (D multzoa) kontutan hartu behar da koma higikorreko erregistroak 64 bitekoak direla (hau da, luzera bikoitzekoak), eta F azpimultzoa D multzoarekin koordinatuta dagoela. 128 biteko doitasun laukoitzeko koma higikorreko ISA (Q) ere definituta dago. Koma higikor gabeko RISC-V ordenagailuek koma higikorretarako software-liburutegiak erabil ditzakete.
RISC-V-k ez ditu salbuspenak jaurtitzen errore aritmetikoetan, esaterako, gainezkatzean edota zeroz zatitzerakoan. Aldiz, bai osokoen aritmetikak, bai koma-higikorreko aritmetikak, zentzuzko defektuzko balioak sortzen dituzte, eta koma higikorreko aginduek egoera-bitak ezartzen dituzte. Zerorekin zatiketa adar batek aurkitu dezake. Egoera-bitak sistema eragile baten bidez edo aldizkako eten baten bidez azter daitezke.

### Memoria atomikoko eragiketak

RISC-V-k PUZ eta hari askoren artean memoria partekatzen duten ordenagailuentzat euskarria du. RISC-Vren memoriaren trinkotasunaren eredu estandarra askatzearen trinkotasuna (release consistency) da. Hau da, kargak eta biltegiratzeak, oro har, berrantolatu daitezke, baina karga batzuk atzipen-eragiketa gisa izenda daitezke, eta atzeragoko memoria-atziketak aurreratu dezakete. Beste biltegiratze-mota batzuk, berriz, aurreko memoria-atzipenei jarraitu behar dieten askatze-eragiketa gisa izenda daitezke.
Oinarrizko agindu-multzoak gutxieneko euskarri bat du, memoria-ordena bermatzeko hesi-agindu baten bidez. Hori nahikoa den arren (fence r, rw eskurapena ematen du eta fence rw, w askapena ematen du), eragiketa konbinatuak eraginkorragoak izan daitezke.
Memoria atomikoko eragiketa luzapenak bi motatako memoria atomikoko eragiketak onartzen ditu askatze-kontsolidaziorako. Lehenik eta behin, helburu orokorreko load-reserved lr eta biltegiratze baldintzatua sc aginduak ematen ditu. lr karga bat egiten du, eta helbide hori hariarentzat gordetzen saiatzen da. Erreserbatutako helbidea store-conditional sc exekutatuko da baina erreserba hori beste puntuko biltegiratze batekin talkarik egiten ez badu bakarrik . Biltegiratzeak arrakasta badu, zero bat jartzen da erregistro batean. Huts egiten badu, zero ez den balio batek adierazten du softwareak eragiketa gaitzetsi behar duela. Betiere, erreserba askatzen da.
Bigarren agindu atomikoen multzoak irakurri-aldatu-idatzi (read-modify-write) sekuentziak egiten ditu: karga bat (nahi izanez gero, karga-atzipen bat) helburu-erregistro batean egiten da, gero eragiketa bat kargatutako balioaren eta iturburu-erregistro baten artean, eta, gero, emaitzaren biltegiratze bat (biltegiratze-askatze bat izan daiteke). Memoria-hesiak hautazkoak eginez eragiketak konbinatzea ahalbideratzen du. Aukerako eragiketak eragiketa atomiko guztietan dauden acquire (atzipen) eta release (askatze) biten bidez aktibatu daitezke. RISC-V-k bederatzi eragiketa posible definitzen ditu: swap (iturri-erregistroaren balioa zuzenean erabiltzea); add; bitwise and, or, eta exclusive-or; eta sinatua eta sinatu gabeko minimoak eta maximoak.
Sistemaren diseinu batek eragiketa konbinatu horiek lr eta sc baino gehiago optimiza ditzake. Adibidez, swap baten helburu-erregistroa zero konstantea bada, karga alde batera utz daiteke. Gordetako balioa kargatik aldatzen ez bada, biltegia saltatu daiteke.
IBM/370 sistemak eta haren ondorengoek, z/Architecture eta x86 barne, konparaketa- eta truke-agindu bat (compare-and-swap edo cas) ezarri zuten biek. Agindu horrek, baldintzapean, memorian kokapen bat frogatzen eta eguneratzen du: kokapenak espero zen balio zahar bat badu,cas-ek balio berri batekin ordezkatzen du; orduan, aldaketa egin duen ala ez beultatuko du. Hala ere, eskuarki, karga-motako agindu sinple bat egiten da cas agindua baino aurretuk, balio zaharra lortzeko. Problema klasikoa da hari batek A balio bat irakurtzen (kargatzen) badu, C balio berri bat kalkulatzen duela, eta gero (cas) erabiltzen duela A C-rekin ordezteko, ez duela modurik jakiteko beste hari bateko jarduera konkurrenteak A B balio batez ordezkatu duen eta, gero, A balioa berrezarri duen bitartean. Algoritmo batzuetan (adibidez, memoriako balioak dinamikoki esleitutako blokeen adierazleak direnean), ABAren problema horrek emaitza okerrak ekar ditzake. Irtenbiderik ohikoenak zabalera bikoitzeko cas agindu bat erabiltzen dute markagailua eta alboko kontagailua eguneratzeko; zoritxarrez, agindu horrek agindu formatu berezia behar du zenbait erregistro zehazteko, hainbat irakurketa egin eta idatzi, eta bus-eragiketa konplexua izan dezake.
lr/scalternatiba eraginkorragoa da. Normalean, memoria-karga bakarra behar izaten da, eta memoria moteleko eragiketak minimizatzea komeni da. Zehatza ere bada: memoria-zelularako sarbide guztiak kontrolatzen ditu, patroi bat ziurtatu beharrean. Hala ere, casek ez bezala, livelocka ahalbidetzen du, non bi harik edo gehiagok behin eta berriz huts egiten baitute besteen aginduek. RISC-V-k aurrerantz progresioa bermatzen du (livelock-ik ez) kodeak denborak eta aginduen sekuentziari buruzko arauak betetzen baditu: 1) / azpimultzoa baino ez du erabili behar. 2) Katxearen errore errepikakorrik gerta ez dadin, kodeak (erreproba-begizta barne) segidako 16 agindu bete behar ditu gehienez. 3) Ez du sistema- edo hesi-agindurik izan behar, edo atzeraka adarkapenik hartu behar lr eta sc artean. 4) Erreproba-begiztaren atzerakako adarkapenak jatorrizko sekuentzian egon behar du.
Datu-egitura bat blokeatzeko irakurri-aldatu-idatzi agindu atomikoak nola erabili erakusten du espezifikazioak.

### Azpimultzo konprimatua

RISC-V ISA estandarrak zehazten du agindu guztiak 32 bitekoak direla. Horrek ezarpen bereziki sinplea ahalbidetzen du, baina, 32 biteko agindu-kodeko beste RISC prozesadore batzuk bezala, luzera aldakorreko aginduak dituzten agindu-multzoetan baino kode-tamaina handiagoa du.
Konpentsatzeko, RISC-ren 32 biteko aginduak benetan 30 bitekoak dira; op kodearen tamainaren 3⁄4 erreserbatu egiten da aukerako (baina gomendatua) luzera aldakorreko konprimatutako agindu multzorako, RVC, 16 biteko instrukzioak dituen. ARM-ren Thumb eta MIPS16, agindu konprimituak ezizen hutsak dira agindurik handienen azpimultzo baterako. ARM-ren Thumb edo MIPS-en multzo konprimitua ez bezala, espazioa hasieratik erreserbatu zen; beraz, ez dago operaketa modu bereizirik. Agindu estandarrak eta konprimituak nahierara nahastu ahalko dira. (Lizapen letra C da).
Agindu konprimituak (Thumb-1 eta MIPS16 bezala) ordezko kodifikazioak (ezizena) besterik ez direnez agindu handiagoz hautatutako azpimultzo baterako, konpresioa mihiztatzailean ezar daiteke, eta ez da funtsezkoa konpiladoreak horren berri izatea.
RVC prototipo bat probatu zuten 2011n. Prototipoaren kodea x86 PC eta MIPS kode konprimitu bat baino %20 txikiagoa zen, eta ARM Thumb-2 kodea baino %2 handiagoa. Cache memoria eta memoria-sistemaren potentzia zenbatetsia nabarmen murriztu zituen.
Ikertzaileak ordenagailu txikientzako kodearen tamaina bitarra murriztu nahi zuen, batez ere sistema informatiko txertatuentzat. Prototipoak erabilienetako 33 instrukzio jaso zituen, multzo konprimituarentzat aldez aurretik erreserbatutako eragiketa-kodeak erabiliz 16 biteko formatu trinko gisa jaso ziren. Konpresioa mihiztatzailean egin zen, mihiztadorean aldaketarik egin gabe. Agindu konprimituek sarritan zero diren eremuak ez dituzte kontuan artzen, erregistroetako (16 edo 8) berehalako balio txikiak edo atzipen-azpimultzoakerabiltzen dituzte. addi oso arrunta da eta askotan konprimitu daiteke.
Tamaina-diferentziaren zati handi bat ARM-ren Thumb multzoarekin alderatuta gertatu zen, RISC-V eta prototipoek ez dutelako zenbait erregistro gorde eta berrezartzeko agindurik. Konpilatzaileak, ordea, pilara sartzeko ohiko aginduak sortu zituen. RVC prototipoaren mihiztatzaileak, askotan, tamainaren erdiko forma konprimitu bihurtu zituen. Hala ere, horrek ARM aginduek baino kode-tarte handiagoa hartu zuen, hainbat erregistro atera eta berrezartzen baitituzte. Ikertzaileak konpiladorea aldatzea proposatu zuen, erregistroak gorde eta berrezartzeko liburutegiko errutinak deitzeko. Errutina horiek kode-katxean egotera joko lukete, eta, beraz, azkar exekutatzera, nahiz eta seguruenik maila anitzeko agindu bat ez bezain azkar.
RVC estandarrak 32 biteko aginduak noizean behin erabiltzea eskatzen du. RVC ez-estandarreko zenbait proposamen osoak dira, ez dute 32 biteko agindurik behar, eta esaten da RVC estandarrak baino dentsitate handiagoak dituztela. Beste proposamen bat horietan oinarritzen da, eta kodifikazio-maila txikiagoa erabiltzen duela dio.

### Azpimultzo txertatua

Txertatutako PUZ txikienetarako (E multzoa) agindu-multzoa bat beste modu batera murrizten da: 32 erregistro osotik 16 baino ez dira onartzen. Gaur egungo luzapen guztiak erabil daitezke; koma-higikorreko luzapen bat , zenbaki osoentzako erregistroak koma-higikorrentzako kontuan hartzen ari da. Aginduen multzo pribilegiatuak soilik onartzen ditu makina modua, erabiltzailearen modua eta base-and-bound helbideen birkokapena erabiltzen duten memoria-sistemak.
RISC-V--rako mikrokontroladore-profil bat eztabaidatu da, sakonki txertatutako sistemen garapena errazteko. C lengoaiaren euskarri azkarragoa eta sinpleagoa du etenetarako, segurtasun-modu erraztuetarako eta POSIX aplikazio interfaze bitarra sinplifikatua.
Korrespontsalek 16 biteko RV16E ISA txikiago ez estandarrak proposatu dituzte: Zenbait proposamen seriok 16 biteko C aginduak 8 × 16 biteko erregistroekin erabiliko lituzkete. Inuzenteen eguneko txantxa batek oso moldaketa praktikoa proposatu zuen: 16 × 16 biteko erregistro osoak erabiltzea, EIMC estandarrekin (32 biteko aginduak barne). Txistea zen banku-aldaketa erabiltzea, 32 biteko PUZa hobeagoa izango zelako helbide-espazioa askoz handiagoa zenean.

### Agindu-multzo pribilegiatua

RISC-V-ren ISAak agindu pribilegiatuen multzoaren zehaztapen bereizia du. 2021eko abendutik aurrera, 1.12 bertsioa RISC-V International-ek berresten du.
Zehaztapenaren 1.11 bertsioak hainbat sistema informatiko mota onartzen ditu:
* Makina modua soilik duten sistemak, agian sistema txertatuetarako.
* Makina modua (ikuskatzailearentzat) eta nukleoa modu pribilegiatuan exekutatzen duten sistema eragileak ezartzeko erabiltzaile-modua duten sistemak.
* Makina modua, hiperbisoreak, gainbegirale anitzak eta erabiltzaile-moduak dituzten sistemak gainbegirale bakoitzaren azpian.
Hauek, gutxi gorabehera, pribilegio eta segurtasuneko lau eraztun dituzten sistemak dira, gehienez ere: makina, hiperbisorea, ikuskatzailea eta erabiltzailea. Halaber, geruza bakoitzak euskarri estandarizatuko software-geruza fin bat izatea espero da, geruza pribilegiatuago bati komunikatzen zaiona, edo hardware bat.
ISAak hiperbisore modu bat ere badu, erabiltzaile eta gainbegirale moduarekiko ortogonala dena. Oinarrizko ezaugarria konfigurazio-bit bat da, hiperbisoreko erregistroetara sartzeko aukera ematen duena, edo sarbideetan etenaldia eragiten duena. Bit horri esker, gainbegiratze-moduari zuzenean hiperbisore batek behar duen hardwarea erabiltzea ahalbidetzen dio. Honek sistema eragilean hosteatuta dauden hiperbisoreen inplementazioa sinplifikatzen ditu. Biltegi baten tamaila mailako ordenagailuak exekutatzeko askotan erabiltzen den modua da. Hosteatu gabeko hiperbisoreei laguntzeko, bit honek sabide hauek etenak sor dezakete hiperbisore batera. Diseinuak hiperbisoreen habiak egitea ere errazten du, hiperbisore batek hiperbisore baten azpian funtzionatzen baitu, eta, beharrezkoa bada, nukleoak hiperbisoreen ezaugarriak bere nukleo-kodean erabiltzeko aukera ematen du. Horren ondorioz, ISA hiperbisoreak bost modu onartzen ditu: makina, gainbegiralea, erabiltzailea, hiperbisorearen peko gaibegiralea eta hiperbisorearen peko erabiltzailea.

## Inplementazioak

RISC-V erakundeak RISC-V PUZ eta SoC inplementazioen zerrenda mantentzen du.

### Lehendik daudenak

Lehendik dauden aplikazio patentatuetan hauek sartzen dira:
* Allwinner Technologyk PUZ XapenaTie C906 inplementatu du D1 aplikazio prozesadorean.
* Andeak Technology Corporation, RISCren lehen kide sortzailea. Haren PUZ RISC-V familiak 32 biteko nukleo txikietatik DSP, FPU, Vector, Linux, superscalar eta/edo multicore ahalmena duten 64 biteko nukleo aurreratuetara doaz.
* Bouffalo Lab-ek RISCseriean oinarritutako MCUak ditu (RV32IMACF, BL60x/BL70x).
* CloudBEAR IP prozesadore enpresa bat da, bere RISC-V nukleoak aplikazio sorta baterako garatzen dituena.
* Codasipek, RISCren kide fundatzaileak, potentzia txikiko aplikazio eta sistema integratuen nukleo sorta bat garatu du.
* Cortus RISCren (V International) sortzaileetako bat da, eta RISCren hainbat ezarpen eta IDE/toolchain/debug sistema oso bat ditu, SoC diseinuaren negozioaren zati gisa doan eskaintzen duena.
* Espressifek RISC-V ULP koprozesadore bat gehitu zion ESP32-S2 mikrokontrolatzaileari. 2020ko azaroan, Espressifek ESP32-C3 iragarri zuen, 32 biteko nukleo bakarra, RISC-V (RV32IMC), MCUn oinarritua.
* Fraunhofer IPMS izan zen segurtasun funtzionaleko baldintzak bete ditzakeen RISC-V nukleo bat garatu zuen lehen erakundea. IP Core EMSA5 32 biteko prozesadorea da, bost etapako oliobidea duena, eta xede orokorreko aldaera gisa (EMSA5-GP) eta ISO 26262 Automotive Safety Integrity Level D arau bat bete dezakeen segurtasun-aldaera gisa (EMSA5-FS) erabil daiteke.
* GílDevicek RISCn (RV32IMAC, GD32V seriea) oinarritutako MCUak ditu; horietako bat Sipeed enpresa elektroniko txinatar batek sortutako Longan Nano taulan erabiltzen da.
* Googlek Pixel 6rako Titan M2 segurtasun-modulua garatu du
* GreenWaves Technologies-ek jakinarazi zuen BBA 8, 32 biteko kontrolatzaile bat gehi 8 konputazio-nukleo, 32 biteko SoC (RV32IMC) eta garatzaileen taula eskuragarri izango dituela 2018ko otsailean. BBA Uino BBB8 garapen-batzordea 2018ko maiatzean hasi zen bidaltzen.
* FPGA guneetako SoC RISCren berehalako nukleoak. Txip sistema, RISC-V nukleoak barne, C++-ek definituak.
* Micro Magic Inc-ek munduko RISCgunerik azkarrena iragarri zuen: 5 GHz eta 13.000 CoreMarks lortu zituen 2020ko urrian.
* Seagatek, 2020ko abenduan, iragarri zuen RISCko erabilera orokorreko bi gune garatu zituela, hurrengo kontrolagailuetan erabiltzeko, biltegiratze-gailuetarako.
* SiFive RISC-V hardwarea garatzeko berariaz sortutako enpresa da, eta 2017an merkaturatutako prozesadore-ereduak ditu. Horiek 64 biteko (RV64GC) sistema bat dute txip batean (SoC), erabilera orokorreko sistema eragileak exekutatzeko gai dena, hala nola Linux.
* Syntacore, RISC-V International-eko kide sortzailea eta RISC-V ip-ren lehen hornitzaile komertzialetako bat, RISC-V ip-ren familia-lizentziak garatzen eta ematen ditu 2015etik. As of 2018, produktu-lerroak 32 eta 64 biteko zortzi nukleo ditu, kode irekiko SCR1 MCU nukleoa barne (RV32I/E[MC]). IP Syntacore-n oinarritutako lehen SoCs komertzialak 2016. urtean frogatu ziren.
* Codasipek eta UltraSoC-ek RISC-V txertatutako SOCentzat erabat babestutako jabetza intelektuala garatu dute; Codasipeko eta beste IP batzuetako RISC-V nukleoak UltraSoC-en arazketarekin, optimizazioarekin eta analisiarekin konbinatzen dituzte.
* 2020tik aurrera, Indiako defentsa- eta estrategia-sektorea 64 biteko Risecreek prozesadorea (RISCV) erabiltzen hasi zen, 100-350 MHz-ean oinarritutakoa, Intelek 22 nm-ko FinFET prozesuarekin fabrikatua.

### Garatzen

* ASTCk RISC-V PUZ bat garatu zuen CI txertatuentzat.
* Indiako Konputazio Aurreratuaren Garapenerako Zentroa (C-DAC) barne-ordenako 32 biteko prozesadore zentral bakarra garatzen ari da, barne-ordenako 64 biteko nukleo bakarra eta VEGA Microprocessors serieko hiru RISC-V prozesadore, ordena bakarrekoak, bikoitzekoak eta laukoitzekoak.
* Cobham Gaisler NOEL-V 64 bit.
* Cambridgeko Unibertsitateko Konputazio Laborategiak, FreeBSD Proiektuarekin lankidetzan, sistema eragile hori 64 biteko RISC-Vra transferitu du, software pertsonalizatua ikertzeko plataforma gisa erabiltzeko.
* Esperanto Technologies-ek iragarri zuen RISCn oinarritutako hiru prozesadore ari direla garatzen: errendimendu handiko ET-Maxion nukleoa, energia-eraginkortasuneko ETminion nukleoa eta ET-Graphics prozesadore grafikoa.
* ETH Zurichek eta Boloniako Unibertsitateak lankidetzan garatu dute RISCa-V PULPino prozesadorea, kode irekikoa, Energia Ultrabaxu Paraleloaren (PULP) proiektuaren parte gisa, IoT energian modu eraginkorrean konputatzeko.
* European Procesador Initiative (EPI), RISC-V Acelerator Stream.NBEk 2021ean egindako lehen RISC-V txiparen irudia.
* Reconfigurable Intelligent Systems Engineering Group (RISE) de IIT-Madras Shakti seriearen kode irekiko sei PUZ diseinu garatzen ari da sei erabileratarako: Gauzen Interneterako 32 biteko PUZ txiki bat (IoT), eta 64 biteko PUZ handiak, memoriaren tamaina duten ordenagailuetarako diseinatuak, adibidez. 32 biteko moushika, RISEk arrakastaz bultzatua, kreditu-txartelak, bozketa elektronikorako makinak (EVM), zaintza-kamerak, sarraila seguruak, osasuna kudeatzeko sistema pertsonalizatuak aplikatzeko.
* lowRISC irabazi-asmorik gabeko proiektu bat da, 64 biteko ISA RISCan oinarritutako kode irekiko hardware-sistema bat ezartzeko.
* Nvidiak RISC-V erabili nahi du Falcon prozesadorea GeForce txartel grafikoetan ordezteko.
* RV64X partzuergoa RISCV-erako grafiko-luzapenen multzo batean ari da lanean, eta jakinarazi du kode irekiko RISCV nukleo bat garatzen ari direla, GPU unitate batekin.
* SiFivek RISCV errendimendu handiko PUZaren lehen nukleoa iragarri zuen, U8 IP serieko prozesadorea.
* Esperanto ET-SoC-1, 200 tops-ko "Kilocore" superkonputagailua txip batean, 64 biteko in-Minion ordenako 1088 nukleo txikirekin, tensor/bektore unitateekin eta 64 biteko 4 ET-Maxion nukleo handirekin.
* Leihoaren esanetan, eraginkortasun handia ari dira garatzen RISC-V PUZ IP eta chiplet teknologia datu-zentroetako aplikazioak fokatuz.

### Kode irekia

Kode irekiko PUZ RISCren diseinu asko daude, besteak beste:
* Berkeleyko PUZak. Horiek hardware bakarraren (Chisel) diseinu-lengoaian inplementatzen dira, eta batzuk treneko motor famatuetarako izendatzen dira:
** 64 biteko kohetea. Kohetea potentzia txikiko bitarteko ordenagailu trinkoetara egokitu daiteke, hala nola gailu pertsonaletara. Stephenson-en suzirirako izendatua.
** Berkeley Out of Order Machine (BOOM), 64 bitekoa. Berkeley Out-of-Order Machine (BOOM) kode irekiko nukleo sintetizagarri eta parameterizagarria da, RV64GC RISC-V, Chiselen hardwarea eraikitzeko lengoaian idatzia. BOOMek Rocket-entzat sortutako azpiegituraren zati handi bat erabiltzen du, eta ordenagailu pertsonaletan, superkonputagailuetan eta kameretan erabil daiteke.
** Berkeleyko 32 biteko PUZ Sodor bost diseinu, ikasleen proiektuetarako diseinatuak. Sodor fikziozko tren-uhartea da Thomasi Tank Engineri buruzko haurrentzako istorioetan.
* Claire Wolf-en picorv32, 32 biteko mikrokontroladore-unitate bat (MCU), RV32IMC klasea, inplementazioa Verilog-en.
* Syntacore-ren scr1, 32 biteko mikrokontroladore-unitate bat (MCU), RV32IMC motakoa, Verilog-en inplementatua.
* ZERB tamaina txikiko RV32I nukleo bat da, Verilog-en baliozkotua. Stavroxeko eraikuntza-sistemekin eta SoC SoC dorrearekin integratuta dago. FPGAren inplementazio bat 354 bilaketa-taulakoa (LUT) eta 345 alfa-flop-ekoa izan zen, eta 1,5 MIPean funtzionatu zuen. 130 nmsnm-ko ASIC batean, 0,04 mm2-koa izan zen, eta goiko muturreko FPGA batek 6.000 nukleo izan ditzake.
* PULPino, ETH Zürich / Boloniako Unibertsitatea. PULPino nukleoek RV32IMC ISA sinple bat ezartzen dute mikrokontrolatzaileentzat (Kö-Riscy) edo RV32IMFC ISA ahaltsuagoa, DSP luzapen pertsonalizatuekin, inkrustatutako seinaleak prozesatzeko.
* Western Digitalek, 2018ko abenduan, SweRV EH1 izeneko RV32IMC nukleoa iragarri zuen. Bi bide eta 19 etapako oliobideak diseinatu zituen. 2019ko abenduan, WDk barne-ordenako nukleo bat iragarri zuen SweRV eh2-k, bi hardware-hari eta 19 etapako oliobidea zituena, eta SweRV EL2-k problema bakarreko nukleo bat, 4 etapako oleoduktuarekin, SweRVn oinarritutako prozesadoreak erabiltzeko bere flash kontrolagailuetan eta SSDetan, eta hirugarrenetara zabaldu zuen.
* Stephan Nolting-en NEORV32, 32 biteko mikrokontroladore-unitate konfiguragarria (MCU), RV32[I/E]MACUX_Zbb_Zfinx_Zicsr_Zifencei PUZ motakoa, plataformatik kanpoko VHDL batean idatzitako txip baten araztailearen euskarriarekin. Mikrokontroleko SoC bat ere badu proiektuak, modulu komunak dituena, hala nola UART, tenporizadoreak, SPI, TWI, TRNG eta memoria txertatuak.
* Alibaba Group-ek, 2019ko uztailean, 2.5 GHz 16-core 64-bit (RV64GCV) XTie 910 out-order prozesadorea iragarri zuen. 2021eko urrian, XTie 910 jaurti zuten Open Source gisa.
* 2020ko ekainean, Txinako Zientzia Akademiako Teknologia Informatikoaren Institutuak (ICT CAS) RISCren errendimendu handiko XiangShan prozesadore-proiektua abiarazi zuen.

## Softwarea

Agindu-multzo berri baterako arazo normala PUZaren diseinurik eta softwarerik eza da. Bi kontuek erabilgarritasuna mugatzen dute eta adopzioa murrizten dute. RISC-V-k PUZko diseinu asko ditu. RISC-V softwareak erreminta-kateak, sistema-eragileak, middleware eta diseinu softwareak ditu.
Eskuragarri dauden RISC-V software-tresnen artean GNU Compiler Collection (GCC) erreminta-katea (GDB, araztailea), LLVM erreminta-katea, OVPsim simulagailua (eta RISC-V prozesadore azkarreko eredu-liburutegia), Spike simulagailua eta simulagailu bat QEMU-n (RV32GC/RV64GC) daude. JEP 422: Linux/RISC-V Port dagoeneko integratuta dago OpenJDK-ren biltegi nagusian.
Linux, FreeBSD, NetBSD eta OpenBSDren kernelerako sistema eragilearentzat euskarria dago, baina gainbegiratzaile-moduko aginduak ez ziren estandarizatu ISA zehaztapen pribilegiatuaren 1.11 bertsiora arte; beraz, euskarri hori behin-behinekoa da. FreeBSDren RISC-V arkitekturarako aurretiko euskarri portetatzea 2016ko otsailean igo zen eta FreeBSD 11.0n bidali zen. Debian eta Fedora Linux banaketetako porteatzeak eta Haikuko portu bat egonkortzen ari dira (biek 64 biteko RISC-V bakarrik onartzen dute, 32 biteko bertsioa bermatzeko planik gabe). Das U-Boot-en port bat dago. UEFI Spec v2.7-k RISC-V lotura definitu du, eta TianoCorerentzat portu bat HPEko ingeniariek egin dute, eta hobetzea espero da. Badago seL4 mikronukleoaren aurretiko port bat. Hex Fivek RISC-Vrako lehen IoT pila segurua atera zuen FreeRTOS euskarriarekin. Halaber, MITen helburu pedagogikoekin erabilitako ANSI C-ko Seigarren Unix Edizioaren inplementazio modernoa egin zen, vx6. Pharos RTOS 64 biteko RISC-Vra eraman da (denboraren babesa eta memoria barne).
Simulagailu bat dago web nabigatzaile batean RISC-V Linux sistema bat JavaScript erabiliz exekutatzeko.
QEMUk 32 eta 64 biteko RISC-V sistemen (Linux adibidez) exekuzioa onartzen du (itzulpen bitarraren bidez) gailu emulatu edo birtualizatu batzuekin (seriea, paraleloa, USB, sarea, biltegiratzea, denbora-errealeko erlojua, watchdog, audioa), eta RISC-V Linux binarioak exekutatzea ere (syscall nukleo anfitrioira itzultzea). Multicore emulazioa onartzen du (SMP).
Creator simulagailua eramangarria da, eta hainbat prozesagailuren ensanblatze-lengoaiak ikasteko aukera ematen dio erabiltzaileari (Creatorrek adibideak ditu, RISC-V eta MIPS32 aginduekin).
WepSIM ikasketarako simulagailuak RISC-V (RV32I+M) aginduen azpimultzo bat (mikroprogramatua) inplementatzen du, eta ensanbladore azpirrutinak exekutatzezko aukera ematen du.
Hainbat hizkuntza erabili dira RISC-V-ren IP nukleoak sortzeko, Chisel Scalan oinarritutako hardwarea deskribatzeko lengoaia barne (diseinuak Verilog-era murritz ditzake gailuetan erabiltzeko), eta CodAL prozesadorea deskribatzeko lengoaia ere erabili da RISC-V prozesadorearen nukleoak deskribatzeko eta dagozkion HDK-k testak sortzeko. RISC-V International Compliance Task Group-ek GitHub-en biltegia du RV32IMCrentzat.

## Garatzeko tresnak

* IAR Systems-ek RISC-Vrako IAR Lan Banku Integratuaren lehen bertsioa kaleratu zuen, 32 biteko RISC-Vren 32 biteko nukleoak eta luzapenak onartzen dituena. Etorkizuneko bertsioetan 64 biteko euskarria eta RV32E oinarrizko agindu txikienentzat euskarria izango dituzte, bai eta segurtasun funtzionala zertifikazioa eta segurtasun-soluzioak ere.
* Lauterbachek RISC-V-rentzat euskarria eman zien haien TRACE32 JTAG araztagiei. Lauterbach-ek ere SiFive-ren RISC-V NEXUS prozesadorea aztarnatzeko laguntza iragarri zuen.
* SEGGERek RISC-Vren nukleoen euskarria gehitu zien J-Link arazketa-zundari, haien Inkorporated Studio garapen integratuko inguruneari eta haren RTOS embOS eta software integratuari.
* UltraSOCk aztarna-sistema estandar bat proposatu eta inplementazio bat eman zuen.

## Erreferentziak

* 1 2 3 (Ingelesez) Waterman, Asanovi, Andrew, Krste. (2019). The RISC-V Instruction Set Manual. , 238 or..
* ↑ Urquhart, Roddy. (29 March 2021). «What Does RISC-V Stand For? A brief history of the open ISA» Systems & Design: Opinion (Semiconductor Engineering).
* ↑ Demerjian, Chuck. (August 7, 2013). A long look at how ARM licenses chips: Part 1. SemiAccurate.
* ↑ Demerjian, Chuck. (August 8, 2013). How ARM licenses its IP for production: Part 2. SemiAccurate.
* ↑ Wave Computing Closes Its MIPS Open Initiative with Immediate Effect, Zero Warning. 2019-11-15.
* 1 2 3 4 5 6 Asanović, Krste. «Instruction Sets Should be Free» U.C. Berkeley Technical Reports (Regents of the University of California).
* ↑ Celio, Christopher; Love, Eric. «ucb-bar/riscv-sodor» GitHub (Regents of the University of California).
* ↑ Celio, Christopher. «CS 152 Laboratory Exercise 3» UC Berkeley (Regents of the University of California).
* ↑ Asanović, Krste. «The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA» U.C. Berkeley Technical Reports (Regents of the University of California).
* ↑ Hruska, Joel. (21 August 2014). «RISC rides again: New RISC-V architecture hopes to battle ARM and x86 by being totally open source» ExtremeTech.
* 1 2 «RISC-V History» RISC-V History.
* ↑ «A new blueprint for microprocessors challenges the industry's giants» The Economist 2019-10-03 ISSN 0013-0613..
* 1 2 RISC-V Foundation. RISC-V Foundation.
* ↑ «Design Automation Conference» dac.com.
* ↑ (Ingelesez) «U.S.-based chip-tech group moving to Switzerland over trade curb fears» Reuters 2019-11-26.
* ↑ Ionescu, Liviu. «The RISC-V Microcontroller Profile» GitHub.
* ↑ RISC-V Cores and SoC Overview. RISC-V 25 September 2019.
* ↑ D1. .
* 1 2 3 «RISC-V International Members» RISC-V International.
* ↑ «At CES2022 Bouffalo Shows its Matter Turnkey Solution» www.eetimes.com.
* ↑ CloudBEAR. .
* ↑ riscv/riscv-cores-list. RISC-V 2021-02-06.
* ↑ «Codasip announces RISC-V processor cores providing multi-core and SIMD capabilities» www.newelectronics.co.uk.
* ↑ ESP32-C3 Family Datasheet V0.4. Espressif Systems 2020.
* ↑ (Ingelesez) Manners, David. (2021-06-08). «Fraunhofer licensing fault-tolerant RISC core for safety-critical applications» Electronics Weekly.
* ↑ «GigaDevice Unveils The GD32V Series With RISC-V Core in a Brand New 32-bit General Purpose Microcontroller» www.gigadevice.com.
* ↑ (Ingelesez) «Sipeed Longan Nano - RISC-V GD32VF103CBT6 Development Board» www.seeedstudio.com.
* ↑ (Alemanez) Grüner, Sebastian. (28 October 2021). «Googles Security-Chip nutzt RISC-V» Golem.de: IT-News für Profis.
* ↑ «GreenWaves GAP8 is a Low Power RISC-V IoT Processor Optimized for Artificial Intelligence Applications» CNXSoft: Embedded Systems News 27 February 2018.
* ↑ Yoshida, Junko. (2018-02-26). «AI Comes to Sensing Devices» EE Times.
* ↑ Shilov, Anton. (9 December 2020). «Seagate Develops Own RISC-V Cores for Storage Controllers» Tom's Hardware.
* ↑ «HiFive1» SiFive.
* ↑ SiFive. «Hi-Five1: Open-source Arduino-Compatible Development Kit» Crowd Supply.
* ↑ «FU540 SoC CPU» SiFive.
* ↑ Syntacore. .
* ↑ «SCR1, open-source RISC-V core» GitHub.
* ↑ RISC-V workshop proceedings. 11 December 2016.
* ↑ Manners, David. (23 November 2016). «Codasip and UltraSoC Combine on RISC-V» Electronics Weekly (Metropolis International Group, Ltd.).
* ↑ (Ingelesez) Desikan, Shubashree. (2018-08-06). «IIT-Madras powers up a desi chip» The Hindu ISSN 0971-751X..
* 1 2 (Ingelesez) «Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices» WION.
* ↑ «C-DAC announces Tech Conclave 2019» The Times of India.
* ↑ (Ingelesez) Sharwood, Simon. (19 August 2020). «India selects RISC-V for semiconductor self-sufficiency contest: Use these homegrown cores to build kit» The Register.
* ↑ «VEGA MICROPROCESSORS» Vega Processor - CDAC 9 July 2021.
* ↑ «NOEL-V Processor» Cobham Gaisler.
* ↑ «Esperanto exits stealth mode, aims at AI with a 4,096 core 7nm RISC-V monster» wikichip.org January 2018.
* ↑ «PULPino GitHub project» GitHub.
* ↑ «PULP Platform» PULP Platform.
* ↑ «Accelerator Stream» European Processor Initiative (EPI).
* ↑ Redmond, Calista. (20 August 2019). «How the European Processor Initiative is Leveraging RISC-V for the Future of Supercomputing» RISC-V International News (RISC-V International).
* ↑ (Ingelesez) Halfacree, Gareth. (10 June 2021). «RISC-V boffins lay out a plan for bringing the architecture to high-performance computing» The Register.
* ↑ «IIT Madras Develops and Boots up MOUSHIK Microprocessor for IoT Devices» IIT Madras 24 September 2020.
* ↑ «RV64X: A Free, Open Source GPU for RISC-V» EETimes.
* ↑ Frumusanu, Andrei. (October 30, 2019). «SiFive Announces First RISC-V OoO CPU Core: The U8-Series Processor IP» Anandtech.
* ↑ Esperanto ET-SoC-1 1092 RISC-V AI Accelerator Solution at Hot Chips 33. 24 August 2021.
* ↑ Gwennap, Linley. (December 13, 2021). «Ventana Develops RISC-V Chiplet» Microprocessor Report.
* ↑ Dahad, Nitin. (September 6, 2021). «RISC-V Chiplet Startup Raises $38m, Targets Data Center Compute» EE Times.
* ↑ Asanović, Krste. «rocket-chip» GitHub (RISC-V International).
* ↑ Celio, Christopher. «riscv-boom» GitHub (Regents of the University of California).
* ↑ Celio, Christopher. «riscv-sodor» GitHub (Regents of the University of California).
* ↑ Celio, Chris. «ucb-bar/riscv-sodor» github (Regents of the University of California).
* ↑ Wolf, Claire. «picorv32» GitHub.
* ↑ «scr1» GitHub (Syntacore).
* ↑ Kindgren, Olof. «SERV - The serial RISC-V CPU» github.
* ↑ Windgren, Olof. «Bit by Bit, how to fit 8 RISC-V cores in a $28 FPGA» YouTube (RISC-V Foundation).
* ↑ Kindgren, Olof. «SERV M extension» Diode Zone.
* ↑ Halfacree, Gareth. «New CoreScore World Record Crams 6,000 SERV RISC-V Cores Into a Single FPGA» hackster.io (Avnet).
* ↑ Traber, Andreas. PULP: Parallel Ultra Low Power. ETH Zurich, University of Bologna.
* ↑ Shilov, Anton. «Western Digital Rolls-Out Two New SweRV RISC-V Cores For Microcontrollers» www.anandtech.com.
* ↑ Shilov, Anton. «Western Digital Reveals SweRV RISC-V Core, Cache Coherency over Ethernet Initiative» www.anandtech.com.
* ↑ (Ingelesez) «Western Digital Releases SweRV RISC-V Core Source Code» AB Open 2019-01-28.
* ↑ Nolting, Stephan. (2022). neorv32. doi:10.5281/zenodo.7030070..
* ↑ «China's Alibaba is making a 16-core, 2.5 GHz RISC-V processor» www.techspot.com.
* ↑ Alibaba open sources four RISC-V cores: XuanTie E902, E906, C906 and C910. 20 October 2021.
* ↑ XiangShan repository on Github
* ↑ XiangShan open-source 64-bit RISC-V processor to rival Arm Cortex-A76 - CNX Software
* ↑ «Architectures/RISC-V» Fedora Wiki (Red Hat).
* ↑ «My Haiku RISC-V port progress» Haiku Community 12 May 2021.
* ↑ Almatary, Hesham. «RISC-V, seL4» seL4 Documentation (Commonwealth Scientific and Industrial Research Organisation (CSIRO)).
* ↑ Almatary, Hesham. «heshamelmatary» GitHub.
* ↑ «MultiZone Secure IoT Stack, the First Secure IoT Stack for RISC-V» Hex Five Security (Hex Five Security, Inc.) 22 February 2019.
* ↑ (Ingelesez) «Pharos» SourceForge.
* ↑ «ANGEL is a Javascript RISC-V ISA (RV64) Simulator that runs riscv-linux with BusyBox.» RISCV.org.
* ↑ (Ingelesez) Lee, Yunsup. (2014-03-05). «Boot RISC-V Linux in your web browser!» RISC-V International.
* ↑ «ANGEL – RISC-V» riscv.org.s3-website-us-west-1.amazonaws.com.
* ↑ «Documentation/Platforms/RISCV» QEMU Wiki.
* ↑ CREATOR Web with RISC-V example: https://creatorsim.github.io/creator/?example_set=default_rv&example=e12
* ↑ CREATOR source code on GitHub: https://github.com/creatorsim/creator
* ↑ «WepSIM with RISC-V_im example» WepSIM.
* ↑ WepSIM homepage. .
* ↑ «Chisel: Constructing Hardware in a Scala Embedded Language» UC Berkeley (Regents of the University of California).
* ↑ (Ingelesez) «Codasip Studio» Codasip.
* ↑ riscv/riscv-compliance. RISC-V 2021-02-12.
* ↑ «RISC-V Debugger» www.lauterbach.com TRACE32 Debugger for RISC-V.
* ↑ «Lauterbach and SiFive Bring TRACE32 Support for High-Performance RISC-V Cores» www.sifive.com.
* ↑ «TRACE32 supports SiFive's RISC-V trace» www.lauterbach.com.
* ↑ SEGGER Adds Support for SiFive's Coreplex IP to Its Industry Leading J-Link Debug Probe. .
* ↑ PR: SEGGER Embedded Studio supports RISC-V architecture. .
* ↑ PR: SEGGER presents RTOS, stacks, middleware for RISC-V. .

## Kanpo estekak

* The RISC-V Instruction Set Manual. RISC-V International.
* Official website
* RISC-V Instruction Set Reference Card on GitHub
* «RISC-V: An Open Standard for SoCs: The case for an open ISA» EETimes 8 July 2014.
* «Analyzing the RISC-V Instruction Set Architecture» Adapteva 11 August 2014.
* «What is RISC-V?» Electromaker 14 July 2021.
* Datuak: Q17637401
* Multimedia: RISC-V / Q17637401
* ↑ Handia eta bi-endiantasuna luzapen gisa gehitu daiteke