RISC-V
RISC-V (shqiptohet "rrezik-pesë"), është një standard i lirë dhe i hapur i arkitekturës së grupit të instruksioneve (ISA) bazuar në parimet e kompjuterit me grup të reduktuar instruksionesh (RISC). Ndryshe nga ISA-të pronësore si x86 dhe ARM, RISC-V përshkruhet si " e lirë dhe e hapur " sepse specifikimet e tij publikohen nën licenca të hapura dhe lejuese të burimit të hapur dhe mund të implementohen pa paguar tarifa.[1]
Gjerësia e bërthamave: 32, 64, 128 bit Prezantuar: 6 gusht 2014 (11 vjet më parë) Versionet:
Dizajni: RISC Lloji: Load–store (ngarkim–ruajtje) Kodimi: Variabël Degjenerimi (Branching): Krahaso dhe degjenero (Compare-and-branch) Endian: Little-endian Madhësia e faqes: 4 KiB Zgjerimet:
Hapur: Po, pa pagesë të të drejtave autoriale
|
RISC-V u zhvillua në vitin 2010 në Universitetin e Kalifornisë, Berkeley si gjenerata e pestë e procesorëve RISC të krijuar në universitet që nga viti 1981. [2] Në vitin 2015, zhvillimi dhe mirëmbajtja e standardit iu transferua RISC-V International, një organizatë jofitimprurëse me bazë në Zvicër me më shumë se 4,500 anëtarë që nga viti 2025. [3]
RISC-V është një arkitekturë e popullarizuar për mikrokontrolluesit dhe sistemet e integruara, me zhvillimin e implementimeve me performancë më të lartë që synojnë tregjet e celularëve, desktopëve dhe serverëve në vazhdim. ISA mbështetet nga disa shpërndarje kryesore të Linux-it, dhe kompani të tilla si SiFive, Andes Technology, SpacemiT, Synopsys, Alibaba (DAMO Academy), StarFive, Espressif Systems dhe Raspberry Pi ofrojnë sisteme komerciale në një çip (SoC) dhe mikrokontrollues (MCU) që përfshijnë një ose më shumë bërthama procesori të pajtueshme me RISC-V. [4]
Historia
[Redakto | Redakto nëpërmjet kodit]Termi RISC daton rreth vitit 1980. Përpara kësaj, kishte disa njohuri (shih John Cocke ) se kompjuterët më të thjeshtë mund të jenë efektivë, por parimet e dizajnit nuk ishin përshkruar gjerësisht. Kompjuterët e thjeshtë dhe efektivë kanë qenë gjithmonë me interes akademik dhe rezultuan në grupin e udhëzimeve RISC DLX për botimin e parë të Arkitekturës së Kompjuterit: Një Qasje Sasiore në vitin 1990, bashkautor i të cilit ishte David Patterson ,ku më vonë mori pjesë në krijimin e RISC-V. DLX ishte menduar për përdorim arsimor; akademikët dhe hobistët e zbatuan atë duke përdorur vargje portash të programueshme në terren (FPGA), por nuk ishte kurrë i menduar vërtet për perdorim komercial.
Krste Asanović në Universitetin e Kalifornisë, Berkeley, kishte një kërkesë kërkimore për një bërthamë CPU me burim të hapur, dhe në vitin 2010, ai vendosi të zhvillonte dhe publikonte të vetën, në një "projekt të shkurtër, tremujor gjatë verës" me disa nga studentët e tij të diplomuar. Disa alternativa të vendosura me burim të hapur ishin të disponueshme, por Asanović zgjodhi të mos i përdorte ato. CPU-të ARM dhe SuperH (versionet 2 dhe më të hershme) kishin grupe udhëzimesh në domenin publik me skedarë zbatimi VHDL, [5] ndërsa bërthamat e plota OpenRISC, OpenPOWER dhe OpenSPARC / LEON ishin gjithashtu të disponueshme ose si skedarë VHDL ose nga shitës të ndryshëm. Të gjitha këto opsione ekzistuese mbështeteshin nga Koleksioni i Kompilatorit GNU (GCC), një kompilator i njohur i softuerit të lirë, dhe kishin mbështetje për kernelin Linux . [6] [7] [8] Plani ishte të ndihmonte përdoruesit akademikë dhe industrialë. [9] David Patterson në Berkeley iu bashkua bashkëpunimit pasi ai ishte krijuesi i Berkeley RISC, dhe RISC-V është gjenerata e pestë me të njëjtin emër e serisë së tij të gjatë të projekteve kërkimore bashkëpunuese të bazuara në RISC në Universitetin e Kalifornisë, Berkeley ( RISC-I dhe RISC-II të botuara në vitin 1981 nga Patterson, i cili i referohet arkitekturës SOAR nga viti 1984 si "RISC-III" dhe arkitekturës SPUR nga viti 1988 si "RISC-IV"). Në këtë fazë, studentët ofruan softuerë fillestarë, simulime dhe dizajne CPU.

Autorët e RISC-V dhe institucioni i tyre fillimisht i siguruan dokumentet ISA [10] dhe disa dizajne CPU sipas licencave BSD, të cilat lejojnë që veprat derivative - të tilla si dizajnet e çipave RISC-V - të jenë ose të hapura dhe falas, ose të mbyllura dhe pronësore. Vetë specifikimi ISA (domethënë, kodimi i grupit të udhëzimeve) u botua në vitin 2011 si burim i hapur, [11] me të gjitha të drejtat e rezervuara. Raporti teknik aktual (një shprehje e specifikimit) u vendos më vonë nën një licencë Creative Commons për të lejuar përmirësimin nga kontribuesit e jashtëm përmes Fondacionit RISC-V dhe më vonë RISC-V International.
Një histori e plotë e RISC-V është publikuar në faqen e internetit të RISC-V International.
Themelet
[Redakto | Redakto nëpërmjet kodit]Përdoruesit komercialë kërkojnë që një ISA të jetë i qëndrueshëm përpara se ta përdorin atë në një produkt që mund të zgjasë për shumë vite. Për të adresuar këtë çështje, Fondacioni RISC-V u formua në vitin 2015 për të zotëruar, mirëmbajtur dhe publikuar pronën intelektuale që lidhet me përkufizimin e RISC-V. [12] Autorët dhe pronarët origjinalë ia kanë dorëzuar të drejtat e tyre fondacionit.Fondacioni drejtohej nga CEO Calista Redmond, e cila mori përsipër rolin në vitin 2019 pasi drejtoi projekte të infrastrukturës së hapur në IBM . [13] [ verifikimi dështoi ] Në vitin 2024 ajo dha dorëheqjen si CEO. [14]
Anëtarët themelues të RISC-V ishin: Andes Technology, Antmicro, Bluespec, Ceva, Codasip, Cortus, Hungaria, Technologies, Espressif Systems, ETH Zurich, Google, IBM, ICT, IIT Madras, Lattice Semiconductor, LowRISC, Microchip Technology, Laboratori i Shkencave Kompjuterike dhe Inteligjencës Artificiale i MIT, Qualcomm, Rambus, Rumble Development, SiFive, Syntacore dhe Technolution. [15]
Që nga viti 2019, RISC-V International i publikon lirshëm dokumentet që përcaktojnë RISC-V dhe lejon përdorim të pakufizuar të ISA-së për dizajnin e softuerit dhe harduerit. Megjithatë, vetëm anëtarët e RISC-V International mund të votojnë për të miratuar ndryshimet, dhe vetëm organizatat anëtare përdorin logon e regjistruar të markës tregtare .[16]
Linux Foundation Europe filloi iniciativën RISC-V Software Ecosystem (RISE) më 31 maj 2023. Qëllimi i RISE është të rrisë disponueshmërinë e softuerit për procesorë RISC-V me performancë të lartë dhe efikasitet energjetik, që përdorin sisteme operative të nivelit të lartë për një gamë segmentesh tregu, duke bashkuar një numër të madh prodhuesish hardueri dhe softueri. Red Hat, Samsung, Qualcomm, Nvidia, MediaTek, Intel dhe Google janë disa nga anëtarët fillestarë.

Dizajnimi i CPU-së kërkon ekspertizë në disa specialitete: logjikë dixhitale elektronike, kompajlerë dhe sisteme operative . Për të mbuluar kostot e një ekipi të tillë, shitësit komercialë të pronësisë intelektuale (IP) të procesorëve, si Arm Ltd. dhe MIPS Technologies, aplikojnë te drejta autoriale për përdorimin e projekteve dhe patentave të tyre. [17] [18] [19] Ata gjithashtu shpesh kërkojnë marrëveshje konfidencialiteti përpara se të publikojnë dokumente që përshkruajnë avantazhet e detajuara të projekteve të tyre. Në shumë raste, ata kurrë nuk i përshkruajnë arsyet për zgjedhjet e tyre të projektimit.
RISC-V filloi me qëllimin për të krijuar një ISA praktike me burim të hapur, të përdorshme në mënyrë akademike dhe të zbatueshme në çdo dizajn hardueri ose softueri pa honorare. : 1 [20] Gjithashtu, shpjegohen arsyetimet justifikuese për secilin vendim të projektimit të projektit, të paktën në terma të përgjithshëm. Autorët e RISC-V janë akademikë që kanë përvojë të konsiderueshme në projektimin kompjuterik, dhe RISC-V ISA është një zhvillim i drejtpërdrejtë nga një seri projektesh akademike të projektimit kompjuterik, veçanërisht RISC i Berkeley-t . RISC-V u krijua pjesërisht për të ndihmuar të gjitha projekte të tilla. : 1 [20]
Për të ndërtuar një komunitet të madh dhe të vazhdueshëm përdoruesish dhe në këtë mënyrë për të grumbulluar dizajne dhe softuerë, projektuesit e RISC-V ISA mbështesin qëllimisht një gamë të gjerë rastesh përdorimi praktik: implementime kompakte, performante dhe me fuqi të ulët në botën reale : 1–2, 153–154 pa mbi-arkitekturë për një mikroarkitekturë të caktuar. : 1 [21] [22] Kërkesat e një baze të madhe kontribuesish janë pjesë e arsyes pse RISC-V u krijua për të adresuar shumë përdorime të mundshme.
Pohimi kryesor i projektuesve është se bashkësia e udhëzimeve është ndërfaqja kryesore në një kompjuter, pasi ndodhet në ndërfaqen midis harduerit dhe softuerit. Nëse një bashkësi e mirë udhëzimesh do të ishte e hapur dhe e disponueshme për përdorim nga të gjithë, atëherë mund ta ulë ndjeshëm koston e softuerit duke mundësuar shumë më tepër ripërdorim. Gjithashtu, duhet të shkaktojë rritje të konkurrencës midis ofruesve të pajisjeve, të cilët më pas mund t'i kushtojnë më shumë burime dizajnit dhe më pak mbështetjes së softuerit. [20]
Dizajnerët pohojnë se parimet e reja po bëhen të rralla në projektimin e grupeve të udhëzimeve, pasi projektimet më të suksesshme të dyzet viteve të fundit janë bërë gjithnjë e më të ngjashme. Nga ato që dështuan, shumica e tyre dështuan sepse kompanitë e tyre sponsorizuese ishin financiarisht të pasuksesshme, jo sepse grupet e udhëzimeve ishin teknikisht të dobëta. Kështu, një grup udhëzimesh i hapur i projektuar mirë, i projektuar duke përdorur parime të mirë-vendosura, duhet të tërheqë mbështetje afatgjatë nga shumë shitës. [20]
RISC-V gjithashtu inkurajon përdorimin akademik. Thjeshtësia e nëngrupit të numrave të plotë lejon ushtrime bazë për studentët dhe është një ISA mjaftueshëm e thjeshtë për të mundësuar që softueri të kontrollojë makinat kërkimore. ISA me gjatësi të ndryshueshme ofron hapësirë për zgjerime të grupit të udhëzimeve si për ushtrimet e studentëve ashtu edhe për kërkimin, : 7 dhe grupi i udhëzimeve të privilegjuara të ndara lejon kërkime në mbështetjen e sistemit operativ pa ridizajnuar kompilatorët. Paradigma e pronësisë intelektuale të hapur të RISC-V lejon që dizajnet derivate të publikohen, ripërdoren dhe modifikohen.
Baza dhe zgjerimet ISA
[Redakto | Redakto nëpërmjet kodit]RISC-V ka një dizajn modular, i përbërë nga pjesë alternative bazë, me zgjerime opsionale shtesë. Baza e ISA-së dhe zgjerimet e saj zhvillohen përmes një përpjekjeje kolektive midis industrisë, komunitetit kërkimor dhe institucioneve arsimore. Baza përcakton instruksionet (dhe kodifikimin e tyre), rrjedhën e kontrollit, regjistrat (dhe madhësitë e tyre), memorien dhe adresimin, manipulimin logjik (p.sh., numrat e plotë), dhe elementë ndihmës. Vetëm baza mund të implementojë një kompjuter të përgjithshëm të thjeshtuar, me mbështetje të plotë softuerike, përfshirë edhe një përpilues (compiler) të përgjithshëm.
Zgjerime standarde
[Redakto | Redakto nëpërmjet kodit]Zgjerimet standarde janë specifikuar për të punuar me të gjitha bazat standarde dhe me njëra-tjetrën pa konflikt.
Shumë kompjuterë RISC-V mund të zbatojnë zgjerimin e udhëzimeve të kompresuara, C, për të zvogëluar konsumin e energjisë, madhësinë e kodit dhe përdorimin e memories. Ekzistojnë gjithashtu plane të ardhshme për të mbështetur hipervizorët dhe virtualizimin .
Së bashku me zgjerimin mbikëqyrës, S, një grup udhëzimesRVG, i cili përfshin një nga grupet e udhëzimeve bazë RV, dhe koleksionin G të zgjerimeve (që përfshin "I", që do të thotë se baza nuk është e integruar), përcakton të gjitha udhëzimet e nevojshme për të mbështetur në mënyrë të përshtatshme një sistem operativ për qëllime të përgjithshme. : 129, 154
Baza e ISA-s dhe zgjerimet
| Name | Description | Version | Status | Instruction count |
|---|---|---|---|---|
| Base | ||||
| RVWMO | Weak memory ordering | 2.0 | Ratified | |
| RV32I | Base integer instruction set, 32-bit | 2.1 | Ratified | 40 |
| RV32E | Base integer instruction set (embedded), 32-bit, 16 registers | 2.0 | Ratified | 40 |
| RV64I | Base integer instruction set, 64-bit | 2.1 | Ratified | 52 |
| RV64E | Base integer instruction set (embedded), 64-bit | 2.0 | Ratified | 52 |
| RV128I | Base integer instruction set, 128-bit | 1.7 | Open | 64 |
| Extension | ||||
| M | Standard extension for integer multiplication and division | 2.0 | Ratified | 8 (RV32)
13 (RV64) |
| A | Standard extension for atomic instructions | 2.1 | Ratified | 11 (RV32)
22 (RV64) |
| F | Standard extension for single-precision floating-point | 2.2 | Ratified | 26 (RV32)
30 (RV64) |
| D | Standard extension for double-precision floating-point | 2.2 | Ratified | 26 (RV32)
32 (RV64) |
| Zicsr | Control and status register (CSR) instructions | 2.0 | Ratified | 6 |
| Zifencei | Instruction-fetch fence | 2.0 | Ratified | 1 |
| G | Shorthand for the IMAFD_Zicsr_Zifencei base and extensions | — | — | |
| Q | Standard extension for quad-precision floating-point | 2.2 | Ratified | 28 (RV32)
32 (RV64) |
| L | Standard extension for decimal floating-point | 0.0 | Open | |
| C | Standard extension for compressed instructions | 2.0 | Ratified | 40 |
| B | Standard extension for bit manipulation | 1.0 | Ratified | 29 (RV32)
41 (RV64) |
| J | Standard extension for dynamically translated languages | 0.0 | Open | |
| T | Standard extension for transactional memory | 0.0 | Open | |
| P | Standard extension for packed-SIMD instructions | 0.9.10 | Open | |
| V | Standard extension for vector operations | 1.0 | Open | 187 |
| Zk | Standard extension for scalar cryptography | 1.0.1 | Ratified | 49 |
| H | Standard extension for hypervisor | 1.0 | Ratified | 15 |
| S | Standard extension for supervisor-level instructions | 1.12 | Ratified | 4 |
| Zam | Misaligned atomics | 0.1 | Open | |
| Zihintpause | Pause hint | 2.0 | Ratified | |
| Zihintntl | Non-temporal locality hints | 0.3 | Ratified | |
| Zfa | Additional floating-point instructions | 1.0 | Ratified | |
| Zfh | Half-precision floating-point | 1.0 | Ratified | |
| Zfhmin | Minimal half-precision floating-point | 1.0 | Ratified | |
| Zfinx | Single-precision floating-point in integer register | 1.0 | Ratified | |
| Zdinx | Double-precision floating-point in integer register | 1.0 | Ratified | |
| Zhinx | Half-precision floating-point in integer register | 1.0 | Ratified | |
| Zhinxmin | Minimal half-precision floating-point in integer register | 1.0 | Ratified | |
| Zmmul | Multiplication subset of the M extension | 1.0 | Ratified | |
| Ztso | Total store ordering | 1.0 | Ratified | |
- Frozen parts are expected to have their final feature set and to receive only clarifications before being ratified
| Format | Bit | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 | |
| Store | imm[11:5] | rs2 | rs1 | funct3 | imm[4:0] | opcode | ||||||||||||||||||||||||||
| Branch | [12] | imm[10:5] | imm[4:1] | [11] | ||||||||||||||||||||||||||||
| Register/register | funct7 | rd | ||||||||||||||||||||||||||||||
| Immediate | imm[11:0] | |||||||||||||||||||||||||||||||
| Upper immediate | imm[31:12] | |||||||||||||||||||||||||||||||
| Jump | [20] | imm[10:1] | [11] | imm[19:12] | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
Për të emërtuar kombinimet e funksioneve që mund të zbatohen, përcaktohet një nomenklaturë për t'i specifikuar ato në Kapitullin 27 të Specifikimit ISA të Paprivilegjuar të ratifikuar aktual. Baza e grupit të instruksioneve specifikohet së pari, duke koduar për RISC-V, gjerësinë e bitit të regjistrit dhe variantin; p.sh.RV64I ose RV32E . Pastaj vijojnë shkronjat që specifikojnë zgjerimet e implementuara, sipas renditjes së tabelës së mësipërme. Çdo shkronjë mund të pasohet nga një shkronjë kryesore, opsionalisht e ndjekur nga "p" dhe një numër opsioni dytësor. Vlera e parazgjedhur është 0 nëse mungon një numër versioni dytësor dhe 1.0 nëse mungon i gjithë numri i versionit. Kështu RV64IMAFD mund të shkruhet si RV64I1p0M1p0A1p0F1p0D1p0 ose më thjesht si RV64I1M1A1F1D1 . Vijat nënvizuese mund të përdoren midis shtesave për lexueshmëri, për shembull RV32I2_M2_A2.

- Llogaritjet bazë, numrat e plotë të zgjeruar dhe presjet lundruese, me primitiva sinkronizimi për llogaritjen me shumë bërthama, konsiderohen të nevojshme për llogaritjen me qëllime të përgjithshme, dhe kështu kemi shkurtesën "G".
- Një kompjuter i vogël 32-bit për një sistem të integruar mund të jetë
RV32EC. Një kompjuter i madh 64-bit mund të jetëRV64GC; dmth.,RV64IMAFDCZicsr_Zifencei.
Me rritjen e numrit të zgjerimeve, standardi tani parashikon që zgjerimet të emërtohen me një “Z” të vetme, e ndjekur nga një emër alfabetik dhe një numër versioni opsional. Për shembull, Zifencei emëron zgjerimin për tërheqjen e instrukcioneve (instruction-fetch). Zifencei2 dhe Zifencei2p0 emërtojnë versionin 2.0 të të njëjtit zgjerim. Shkronja e parë pas “Z” sipas konventës tregon kategorinë alfabetike më të ngjashme të zgjerimit, IMAFDQLCBJTPVN. Kështu, zgjerimi Zam për atomikët e pasakorduar lidhet me zgjerimin standard “A”. Ndryshe nga zgjerimet me një karakter të vetëm, zgjerimet Z duhet të ndahen me nënvija, të grupohen sipas kategorisë dhe më pas alfabetikisht brenda çdo kategorie. Për shembull, Zicsr_Zifencei_Zam.
Zgjerimet që janë specifike për nivelin e privilegjit të supervizorit emërtohen në të njëjtin mënyrë duke përdorur “S” si prefiks. Zgjerimet specifike për nivelin e hipervizorit emërtohen duke përdorur “H” si prefiks. Zgjerimet në nivelin e makinës (machine level) kanë prefiks tre shkronjash “Zxm”. Zgjerimet e setit të instrukcioneve për nivelin e supervizorit, hipervizorit dhe makinës emërtohen sipas zgjerimeve me privilegje më të ulëta.
Zhvilluesit e RISC-V mund të krijojnë zgjerime të tyre të setit të instrukcioneve që nuk janë standarde. Këto ndjekin konventën e emërtimit “Z”, por me prefiksin “X”. Ato duhet të specifikohen pas të gjitha zgjerimeve standarde, dhe nëse listohen më shumë zgjerime jo-standard, ato duhet të renditen alfabetikisht.
Profilet dhe platformat
[Redakto | Redakto nëpërmjet kodit]Profilet dhe platformat jane ne diskutim për listat e zgjedhjes së ISA-standard.
Ky fleksibilitet mund të përdoret për të optimizuar në mënyrë të lartë një dizajn të specializuar duke përfshirë vetëm grupin e saktë të veçorive të ISA-s që kërkohen për një aplikacion, por i njëjti fleksibilitet gjithashtu çon në një shpërthim kombinatorial të zgjedhjeve të mundshme të ISA-s. Profilet përcaktojnë një grup shumë më të vogël zgjedhjesh të ISA-s që kapin vlerën më të madhe për shumicën e përdoruesve, dhe kështu u mundësojnë komuniteteve të softuerit të fokusojnë burimet në ndërtimin e një ekosistemi të pasur softuerik.
Specifikimi i platformës përcakton një grup platformash që përcaktojnë kërkesat për ndërveprimin midis softuerit dhe harduerit. Politika e Platformës përcakton termat e ndryshëm të përdorur në këtë specifikim platforme. Politika e platformës gjithashtu ofron detajet e nevojshme lidhur me fushën e mbulimit, emërtimin, versionimin, strukturën, ciklin e jetës dhe pretendimet e kompatibilitetit për specifikimin e platformës.
- Profilet RISC-V RVI20, RVA20, RVA22 janë version 1.0 që nga marsi 2023.
- Profilet RVA23 dhe RVB23 janë version 1.0 që nga tetori 2024.RVA23U64 bën që zgjerimet V Vector të jenë të detyrueshme, ndërsa në RVA22U64 ato ishin opsionale.
Dizajni
[Redakto | Redakto nëpërmjet kodit]Si një arkitekturë RISC, ISA e RISC-V është një arkitekturë load–store. Instruksionet e saj me pikë lundruese (floating-point) përdorin standardin IEEE 754. Veçoritë e shquara të ISA-së RISC-V përfshijnë: vendosjen e fushave të bitëve të instruksioneve në mënyrë që të thjeshtojë përdorimin e multiplexer-ëve në një CPU,[1]: 17 një dizajn që është arkitekturësisht neutral, dhe një vend të fiksuar për bitin e shenjës së vlerave të menjëhershme (immediate) për të përshpejtuar zgjerimin e shenjës.[1]
Seti i udhëzimeve është projektuar për një gamë të gjerë përdorimesh. Seti bazë i udhëzimeve ka një gjatësi fikse të udhëzimeve 32-bit të rreshtuara natyrshëm, dhe ISA mbështet zgjatime me gjatësi të ndryshueshme ku çdo udhëzim mund të jetë çdo numër paketash 16-bit në gjatësi. : 7–10 Zgjerimet mbështesin sisteme të vogla të ngulitura, kompjuterë personalë, superkompjuterë me procesorë vektorialë dhe kompjuterë paralelë në shkallë depoje.
Specifikimi i grupit të udhëzimeve përcakton variantet e hapësirës së adresave 32-bit dhe 64-bit . Specifikimi përfshin një përshkrim të një varianti të hapësirës së adresave të sheshtë 128-bit, si një ekstrapolim i varianteve 32- dhe 64-bit, por ISA 128-bit mbetet "jo i ngrirë" qëllimisht, sepse Që prej 2023[update] , ende ka pak përvojë praktike me sisteme kaq të mëdha memorieje.[1]
Ndryshe nga dizajnet e tjera akademike të cilat zakonisht optimizohen vetëm për thjeshtësi të ekspozimit, dizajnerët kishin për qëllim që grupi i udhëzimeve RISC-V të ishte i përdorshëm për kompjuterë praktikë. Që nga qershori 2019, versioni 2.2 i ISA-së së hapësirës së përdoruesit dhe versioni 1.11 i ISA-së së privilegjuar janë ngrirë, duke lejuar që zhvillimi i softuerit dhe harduerit të vazhdojë. ISA-ja e hapësirës së përdoruesit, tani e riemëruar ISA e Paprivilegjuar, u përditësua, u ratifikua dhe u ngri si versioni 20191213. Një specifikim i jashtëm i debugimit është i disponueshëm si draft, versioni 0.13.2.
Sete regjistrash
[Redakto | Redakto nëpërmjet kodit]| Mnemonikë asambleri për regjistrat RISC-V me numra të plotë dhe me pikë lundruese, dhe roli i tyre në konventën e parë standarde të thirrjes. [1]: 137 | |||
|---|---|---|---|
| Regjistrohu
emër |
Simbolike
emër |
Përshkrimi | Ruajtur nga |
| 32 regjistra të numrave të plotë | |||
| x0 | zero | Gjithmonë zero | |
| x1 | ra | Adresa e kthimit | Telefonuesi |
| x2 | sp | Treguesi i grumbullit | Funksioni |
| x3 | gp | Treguesi global | |
| x4 | tp | Treguesi i fijes | |
| x5 | t0 | Adresë e përkohshme / alternative e kthimit | Telefonuesi |
| x6–7 | t1–2 | Të përkohshme | Telefonuesi |
| x8 | s0/fp | Regjistri i ruajtur / treguesi i kornizës | Funksioni |
| x9 | s1 | Regjistri i ruajtur | Funksioni |
| x10–11 | a0–1 | Argumentet e funksionit / vlerat e kthimit | Telefonuesi |
| x12–17 | a2–7 | Argumentet e funksionit | Telefonuesi |
| x18–27 | s2–11 | Regjistrat e ruajtur | Funksioni |
| x28–31 | t3–6 | Të përkohshme | Telefonuesi |
| 32 floating-point extension registers | |||
| f0–7 | ft0–7 | Të përkohshme me pikë lundruese | Telefonuesi |
| f8–9 | fs0–1 | Regjistrat e ruajtur me pikë lundruese | Funksioni |
| f10–11 | fa0–1 | Argumentet me pikë lundruese/vlerat e kthimit | Telefonuesi |
| f12–17 | fa2–7 | Argumentet me pikë lundruese | Telefonuesi |
| f18–27 | fs2–11 | Regjistrat e ruajtur me pikë lundruese | Funksioni |
| f28–31 | ft8–11 | Të përkohshme me pikë lundruese | Telefonuesi |
RISC-V ka 32 regjistra të numrave të plotë (ose 16 në variantin e integruar), : 13, 33 dhe kur zbatohet zgjerimi me pikë lundruese, krijohen edhe 32 regjistra shtesë me pikë lundruese . [1] : 63 Me përjashtim të instruksioneve të aksesit në memorie, instruksionet që adresojnë vetëm regjistrojnë .
Regjistri i parë i numrave të plotë është një regjistër zero, dhe pjesa tjetër janë regjistra me qëllim të përgjithshëm. Një ruajtje në regjistrin zero nuk ka efekt, dhe një lexim gjithmonë jep 0. Përdorimi i regjistrit zero si një vendmbajtës e bën një bashkësi udhëzimesh më të thjeshtë.
Regjistrat e kontrollit dhe të statusit ekzistojnë, por programet në modalitetin e përdoruesit mund të qasen vetëm tek ato që përdoren për matjen e performancës dhe menaxhimin e pikës lundruese.
Nuk ekzistojnë udhëzime për të ruajtur dhe rivendosur regjistra të shumtë. Mendohej se ato ishin të panevojshme, shumë komplekse dhe ndoshta shumë të ngadalta.
Qasja në kujtesë
[Redakto | Redakto nëpërmjet kodit]Ashtu si shumë dizajne RISC, RISC-V është një arkitekturë ngarkim-ruajtje : instruksionet adresojnë vetëm regjistra, me instruksione ngarkimi dhe ruajtjeje që përcjellin të dhëna nga dhe në memorie.
Shumica e instruksioneve të ngarkimit dhe ruajtjes përfshijnë një zhvendosje 12-bitëshe dhe dy identifikues regjistrash. Një regjistër është regjistri bazë. Regjistri tjetër është destinacioni (për një ngarkesë) ose burimi (për një ruajtje).
Zhvendosja shtohet në një regjistër bazë për të marrë adresën. : 24 Formimi i adresës si një regjistër bazë plus zhvendosje lejon që udhëzime të vetme të qasen në strukturat e të dhënave. Për shembull, nëse regjistri bazë tregon në krye të një pirgu, udhëzime të vetme mund të qasen në variablat lokale të një nënprogrami në pirg. Po kështu, udhëzimet e ngarkimit dhe ruajtjes mund të qasen në një strukturë të stilit të regjistrimit ose në një pajisje I/O të hartuar në memorie. Përdorimi i regjistrit zero konstant si një adresë bazë lejon që udhëzime të vetme të qasen në memorie pranë adresës zero.
Memoria adresohet si bajtë 8-bitësh, me udhëzimet të ruajtura në rend little-endian, ndërsa renditja e bajteve të të dhënave përcaktohet nga ndërfaqja e mjedisit të ekzekutimit ku po ekzekutohet kodi. Fjalët, deri në madhësinë e regjistrit, mund të aksesohen përmes udhëzimeve të ngarkimit dhe të ruajtjes.
RISC-V fillimisht u specifikua si little-endian, për t’iu përngjarë kompjuterëve të tjerë të njohur dhe të suksesshëm, si p.sh. x86. Kjo gjithashtu e zvogëlon kompleksitetin e CPU-së dhe e ul pak koston, sepse të gjitha madhësitë e fjalëve lexohen me të njëjtin rend bajtesh. Për shembull, grupi i udhëzimeve RISC-V dekodon udhëzimin duke filluar nga bajti me adresën më të ulët.
Variantet big-endian dhe bi-endian janë përcaktuar për të mbështetur baza të vjetra kodi që supozojnë renditje big-endian. ISA-ja e privilegjuar përcakton bitët dhe regjistrat që tregojnë dhe, opsionalisht, kontrollojnë nëse qasjet në memorie në modalitetin M, modalitetin S dhe modalitetin U (përveç marrjes së udhëzimeve) janë little-endian apo big-endian; këto bit mund të jenë vetëm të lexueshëm, në të cilin rast endianiteti i implementimit është i fiksuar harduerikisht, ose mund të jenë të shkrueshëm.
Një ndërfaqe e mjedisit të ekzekutimit mund të lejojë që adresat e memories që aksesohen të mos jenë të rreshtuara sipas gjerësisë së fjalës së tyre, por qasjet në adresat e rreshtuara zakonisht janë më të shpejta. Për shembull, CPU-të e thjeshta mund t’i trajtojnë qasjet e pa rreshtuara duke i emuluar ato në mënyrë të ngadaltë me softuer, i cili aktivizohet nga një ndërprerje që ndodh kur rreshtimi nuk përputhet. [23] : 3, 24–25
Ashtu si shumë grupe udhëzimesh RISC (dhe disa grupe udhëzimesh të kompjuterit me grupe udhëzimesh komplekse (CISC), të tilla si x86 dhe IBM System/360 dhe pasardhësit e tij përmes z/Architecture ), RISC-V nuk ka mënyra adresimi që shkruajnë mbrapsht në regjistra. Për shembull, nuk rrit automatikisht. [24] : 24
RISC-V menaxhon sistemet e memories që ndahen midis CPU-ve ose fijeve të punës (threads) duke siguruar që një fije ekzekutimi i sheh gjithmonë operacionet e saj të memories në rendin e programuar. Por midis fijeve të punës dhe pajisjeve I/O, RISC-V është i thjeshtuar: nuk garanton rendin e operacioneve të memories, përveçse me anë të udhëzimeve specifike, siç është fence .
Një udhëzim fence garanton që rezultatet e operacioneve paraardhëse janë të dukshme për operacionet pasardhëse të fijeve të tjera ose pajisjeve I/O. fence mund të garantojë rendin e kombinimeve të operacioneve I/O të memories dhe të atyre të hartuara në memorie. P.sh., ai mund të ndajë operacionet e leximit dhe shkrimit të memories, pa ndikuar në operacionet I/O. Ose, nëse një sistem mund të operojë pajisjet I/O paralelisht me memorien, fence nuk i detyron ato të presin për njëra-tjetrën. Një CPU me një fije mund ta dekodojë fence si nop .
Disa CPU RISC (si MIPS, PowerPC, DLX dhe RISC-I i Berkeley-t) vendosin 16 bit zhvendosjeje në ngarkime dhe ruajtje. Ata vendosin 16 bitët e sipërm me anë të një instruksioni të ngarkimit të fjalës së sipërme . Kjo lejon që vlerat e gjysmëfjalës së sipërme të vendosen lehtësisht, pa zhvendosur bitët. Megjithatë, shumica e përdorimit të instruksionit të gjysmëfjalës së sipërme krijon konstante 32-bitëshe, si adresat. RISC-V përdor një kombinim të ngjashëm me SPARC të zhvendosjeve 12-bitëshe dhe instruksioneve të sipërme të vendosura 20-bitëshe. Zhvendosja më e vogël 12-bitëshe ndihmon në kompaktimin e instruksioneve të ngarkimit dhe ruajtjes 32-bitëshe, të cilat zgjedhin dy nga 32 regjistra, por prapëseprapë kanë bit të mjaftueshëm për të mbështetur kodimin e instruksioneve me gjatësi të ndryshueshme të RISC-V. [25] : 16
Vlera e menjëhershme
[Redakto | Redakto nëpërmjet kodit]RISC-V trajton konstante dhe adresa 32-bitëshe me udhëzime që vendosin 20 bitët e sipërm të një regjistri 32-bitësh. Ngarkimi i lui të menjëhershëm të sipërm ngarkon 20 bitë në bitët 31 deri në 12. Pastaj një udhëzim i dytë si addi mund të vendosë 12 bitët e poshtëm. Numra ose adresa të vogla mund të formohen duke përdorur regjistrin zero në vend të lui .
Kjo metodë zgjerohet për të lejuar kod të pavarur nga pozicioni duke shtuar një udhëzim, auipc, i cili gjeneron 20 bit të adresës së sipërme duke shtuar një zhvendosje në numëruesin e programit dhe duke ruajtur rezultatin në një regjistër bazë. Kjo i lejon një programi të gjenerojë adresa 32-bitëshe që janë relative me numëruesin e programit.
Regjistri bazë shpesh mund të përdoret siç është me zhvendosjet 12-bitëshe të ngarkesave dhe të memorjeve. Nëse është e nevojshme, addi mund të vendosë 12 bitët e poshtëm të një regjistri. Në ISA-të 64-bitëshe dhe 128-bitëshe, lui dhe auipc zgjerojnë shenjën e rezultatit për të marrë adresën më të madhe. [1]: 37
Disa CPU të shpejta mund të interpretojnë kombinimet e udhëzimeve si udhëzime të vetme të bashkuara . lui ose auipc janë kandidatë të mirë për t'u bashkuar me jalr, addi, loads ose stores.
Thirrjet, kërcimet dhe degët e nënprogramit
[Redakto | Redakto nëpërmjet kodit]Thirrja e nënprogramit jal (kërcim dhe lidhje) e RISC-V e vendos adresën e kthimit në një regjistër. Kjo është më e shpejtë në shumë dizajne kompjuterash, sepse kursen një akses në memorie krahasuar me sistemet që shtyjnë një adresë kthimi direkt në një pirg në memorie. jal ka një zhvendosje të nënshkruar 20-bitësh ( komplementi i dyshit ). Zhvendosja shumëzohet me 2, pastaj shtohet në PC (numëruesin e programit) për të gjeneruar një adresë relative me një udhëzim 32-bitësh. Nëse adresa që rezulton nuk është e rreshtuar 32-bitësh (domethënë e ndashme me 4), CPU mund të detyrojë një përjashtim . [1] : 20–23, Seksioni 2.5
CPU-të RISC-V kërcejnë në adresat e llogaritura duke përdorur një udhëzim jalr të regjistrit të kërcimit dhe lidhjes . jalr është i ngjashëm me jal, por merr adresën e destinacionit duke shtuar një zhvendosje 12-bitëshe në një regjistër bazë. (Në të kundërt, jal shton një zhvendosje më të madhe 20-bitëshe në PC.)
Formati i bitëve i JALR është i ngjashëm me atë të load dhe store që janë relative ndaj regjistrit. Si ata, JALR mund të përdoret me udhëzimet që vendosin 20 bitët e sipërm të një regjistri baze për të bërë degëzime 32-bitëshe, qoftë në një adresë absolute (duke përdorur LUI) ose një adresë relative ndaj PC-së (duke përdorur AUIPC për kod të pavarur nga pozicioni).
(Përdorimi i një adrese baze konstante zero lejon thirrje me një udhëzim të vetëm drejt një adrese të vogël fikse, pozitive ose negative, sipas offset-it.)
RISC-V riciklon jal dhe jalr për të marrë kërcime të pakushtëzuara 20-bitëshe PC-relative dhe kërcime të pakushtëzuara 12-bitëshe të bazuara në regjistra. Kërcimet thjesht e bëjnë regjistrin e lidhjes 0 në mënyrë që të mos ruhet asnjë adresë kthimi.
RISC-V gjithashtu riciklon jalr për ta kthyer nga një nënprogram: Për ta bërë këtë, regjistri bazë i jalr është vendosur të jetë regjistri i lidhjes i ruajtur nga jal ose jalr . Zhvendosja e jalr është zero dhe regjistri i lidhjes është zero, kështu që nuk ka zhvendosje dhe nuk ruhet asnjë adresë kthimi.
Ashtu si shumë dizajne RISC, në një thirrje nënprogrami, një kompilues RISC-V duhet të përdorë udhëzime individuale për të ruajtur regjistrat në stick në fillim dhe pastaj t'i rivendosë këto nga stick në dalje. RISC-V nuk ka udhëzime për ruajtje të shumëfishtë ose rivendosje të regjistrave të shumëfishtë . Mendohej se këto e bënin CPU-në shumë komplekse dhe ndoshta të ngadaltë. Kjo mund të marrë më shumë hapësirë kodi. Dizajnerët planifikuan të zvogëlonin madhësinë e kodit me rutina biblioteke për të ruajtur dhe rivendosur regjistrat.
RISC-V nuk ka regjistër të kodit të kushtëzimit ose bit bartës . Projektuesit besonin se kodet e kushteve i bëjnë CPU-të e shpejta më komplekse duke detyruar ndërveprimet midis udhëzimeve në faza të ndryshme të ekzekutimit. Kjo zgjedhje e bën aritmetikën me precizion të shumëfishtë më komplekse. Gjithashtu, disa detyra numerike kanë nevojë për më shumë energji. Si rezultat, predikimi (ekzekutimi i kushtëzuar i udhëzimeve) nuk mbështetet. Projektuesit pretendojnë se dizajnet e CPU-ve shumë të shpejta dhe jashtë rendit e bëjnë predikimin gjithsesi, duke bërë degën krahasuese dhe kodin e kushtëzuar paralelisht, dhe më pas duke hedhur poshtë efektet e shtegut të papërdorur. Ata gjithashtu pretendojnë se edhe në CPU-të më të thjeshta, predikimi është më pak i vlefshëm se parashikimi i degës, i cili mund të parandalojë shumicën e ngecjeve të shoqëruara me degët e kushtëzuara. Kodi pa predikim është më i madh, me më shumë degë, por ata gjithashtu pretendojnë se një grup udhëzimesh i kompresuar (siç është grupi C i RISC-V) e zgjidh këtë problem në shumicën e rasteve.
Në vend të kësaj, RISC-V ka degë të shkurtra që kryejnë krahasime: të barabarta, jo të barabarta, më të vogla, pa shenjë më të vogla, më të mëdha ose të barabarta dhe pa shenjë më të mëdha ose të barabarta. Dhjetë operacione të degëve të krahasimit zbatohen vetëm me gjashtë udhëzime, duke përmbysur rendin e operandëve në asembler . Për shembull, degëzimi nëse është më i madh se mund të bëhet nga më pak se me një rend të përmbysur të operandëve. [1] : 20–23, Section 2.5
Degët krahasuese kanë një diapazon të nënshkruar prej dymbëdhjetë bitësh dhe kërcejnë në lidhje me PC-në. : [1]20–23, Seksioni 2.5
Ndryshe nga disa arkitektura RISC, RISC-V nuk përfshin një slot vonese të degës, një pozicion pas një udhëzimi të degës që mund të mbushet me një udhëzim që ekzekutohet pavarësisht nëse dega merret apo jo. [1]: Section 2.5 RISC-V lë jashtë një vend për vonesë dege sepse ndërlikon CPU-të me shumë cikle, CPU-të superskalare dhe tubacionet e gjata. Parashikuesit dinamikë të degëve kanë pasur sukses të mjaftueshëm për të zvogëluar nevojën për degë të vonuara.
Në takimin e parë me një degëzim, CPU-të RISC-V duhet të supozojnë se do të merret një degë relative negative (domethënë biti i shenjës së zhvendosjes është "1"). Kjo supozon se një degëzim prapa është një lak dhe ofron një drejtim të paracaktuar në mënyrë që CPU-të e thjeshta të tubuara të mund të mbushin tubacionin e tyre të udhëzimeve. Përveç kësaj, RISC-V nuk kërkon parashikim të degës, por implementimet thelbësore lejohen ta shtojnë atë. RV32I rezervon një hapësirë udhëzimi "HINT" që aktualisht nuk përmban asnjë udhëzim mbi degët; : 28–29, Seksioni 2.9 RV64I bën të njëjtën gjë.
Bashkësi aritmetike dhe logjike
[Redakto | Redakto nëpërmjet kodit]RISC-V e ndan matematikën në një grup minimal udhëzimesh të plota (grupi I ) me mbledhje, zbritje, zhvendosje, logjikë bit-by-bit dhe degë krahasimi. Këto mund të simulojnë shumicën e grupeve të tjera të udhëzimeve RISC-V me softuer. (Udhëzimet atomike janë një përjashtim i dukshëm.) Udhëzimeve të plota RISC-V u mungojnë operacionet e numërimit zero që çon në numërim dhe të fushës së biteve që përdoren normalisht për të shpejtuar pikën lundruese të softuerit në një procesor me numër të plotë të pastër. Megjithatë, ndërsa nominalisht janë në zgjerimin e manipulimit të biteve, zgjerimet e ratifikuara Zbb, Zba dhe Zbs përmbajnë udhëzime të mëtejshme të plota duke përfshirë një udhëzim numërimi zero që çon në numërim.
Udhëzimet e shumëzimit të numrave të plotë (bashkësia M ) përfshijnë shumëzimin dhe pjesëtimin me shenjë dhe pa shenjë. Shumëzimet dhe pjesëtimet e numrave të plotë me saktësi të dyfishtë përfshihen, pasi shumëzimet dhe pjesëtimet që prodhojnë fjalën e lartë të rezultatit. Dokumenti ISA rekomandon që implementuesit e CPU-ve dhe kompiluesve të bashkojnë një sekuencë të standardizuar të udhëzimeve të shumëzimit dhe pjesëtimit të lartë dhe të ulët në një operacion, nëse është e mundur.
Udhëzimet me pikë lundruese (bashkësia F ) përfshijnë aritmetikë me precizion të vetëm dhe gjithashtu degë krahasimi të ngjashme me aritmetikën e numrave të plotë. Kërkon një grup shtesë prej 32 regjistrash me pikë lundruese. Këta janë të ndarë nga regjistrat e numrave të plotë. Udhëzimet me pikë lundruese me precizion të dyfishtë (bashkësia D ) në përgjithësi supozojnë se regjistrat me pikë lundruese janë 64-bit (domethënë, me gjerësi të dyfishtë) dhe nëngrupi F është i koordinuar me bashkësinë D. Gjithashtu është përcaktuar një ISA ( Q ) me pikë lundruese 128-bit me precizion të katërfishtë. : 63–82 Kompjuterët RISC-V pa pikë lundruese mund të përdorin një bibliotekë softuerësh me pikë lundruese.
RISC-V nuk shkakton përjashtime në gabimet aritmetike, duke përfshirë mbingarkesën, : 17–20 nën-rrjedhë, nën-normale dhe pjesëto me zero. : 44–45 Në vend të kësaj, si aritmetika e numrave të plotë ashtu edhe ajo me pikë lundruese prodhojnë vlera të arsyeshme parazgjedhjeje, dhe instruksionet me pikë lundruese vendosin bitë statusi. : 66 Pjesëtimi me zero mund të zbulohet nga një degë pas pjesëtimit. : 44–45 Bitët e statusit mund të testohen nga një sistem operativ ose nga ndërprerje periodike.
Operacionet e kujtesës atomike
[Redakto | Redakto nëpërmjet kodit]RISC-V mbështet kompjuterë që ndajnë memorien midis CPU-ve dhe fijeve të shumëfishta. Modeli standard i konsistencës së memories i RISC-V është konsistenca e lëshimit . Kjo do të thotë, ngarkimet dhe ruajtjet në përgjithësi mund të rirenditen, por disa ngarkime mund të përcaktohen si operacione blerjeje të cilat duhet t'i paraprijnë akseseve të mëvonshme në memorie, dhe disa ruajtje mund të përcaktohen si operacione lëshimi të cilat duhet të ndjekin akseset e mëparshme në memorie.
Seti bazë i udhëzimeve përfshin mbështetje minimale në formën e një instruksioni fence për të zbatuar renditjen e memories. : 26–27 Edhe pse kjo është e mjaftueshme ( fence r, rw siguron marrjen dhe fence rw, w siguron lirimin ), operacionet e kombinuara mund të jenë më efikase.
Zgjerimi i operacioneve të memories atomike mbështet dy lloje operacionesh të memories atomike për qëndrueshmëri në lëshim. Së pari, ai ofron udhëzime lr me rezervim ngarkese dhe sc me kusht ruajtjen për qëllime të përgjithshme. lr kryen një ngarkim dhe përpiqet të rezervojë atë adresë për fijen e tij. Një sc i mëvonshëm me kusht ruajtjen në adresën e rezervuar do të kryhet vetëm nëse rezervimi nuk prishet nga një ruajtje ndërhyrëse nga një burim tjetër. Nëse ruajtja ka sukses, një zero vendoset në një regjistër. Nëse dështon, një vlerë jo-zero tregon se softueri duhet ta riprovojë operacionin. Në të dyja rastet, rezervimi lirohet.
Grupi i dytë i udhëzimeve atomike kryen sekuenca lexim-modifikim-shkrim : një ngarkim (që është opsionalisht një ngarkim-marrje) në një regjistër destinacioni, pastaj një operacion midis vlerës së ngarkuar dhe një regjistri burimor, pastaj një ruajtje të rezultatit (i cili mund të jetë opsionalisht një ruajtje-lirim). Bërja e barrierave të memories opsionale lejon kombinimin e operacioneve. Operacionet opsionale mundësohen nga bitët e blerjes dhe lirimit të cilat janë të pranishme në çdo udhëzim atomik. RISC-V përcakton nëntë operacione të mundshme: shkëmbim (përdor vlerën e regjistrit burimor direkt); mbledhje; bit-by-bit dhe, ose, dhe ekskluziv-ose; dhe minimum dhe maksimum të nënshkruar dhe të pashënuar.
Një dizajn sistemi mund t'i optimizojë këto operacione të kombinuara më shumë sesa lr dhe sc . Për shembull, nëse regjistri i destinacionit për një shkëmbim është konstantja zero, ngarkesa mund të anashkalohet. Nëse vlera e ruajtur është e pamodifikuar që nga ngarkimi, ruajtja mund të anashkalohet.
IBM System/370 dhe pasardhësit e tij, duke përfshirë z/Architecture dhe x86, zbatojnë të dy një udhëzim krahaso-dhe-shkëmbe ( cas ), i cili teston dhe përditëson me kusht një vendndodhje në memorie: nëse vendndodhja përmban një vlerë të vjetër të pritur, cas e zëvendëson atë me një vlerë të re të dhënë; pastaj kthen një tregues nëse e ka bërë ndryshimin. Megjithatë, një udhëzim i thjeshtë i tipit të ngarkesës zakonisht kryhet para cas për të marrë vlerën e vjetër. Problemi klasik është se nëse një fije lexon (ngarkon) një vlerë A, llogarit një vlerë të re C dhe pastaj përdor ( cas ) për të zëvendësuar A me C, nuk ka asnjë mënyrë për të ditur nëse aktiviteti i njëkohshëm në një fije tjetër ka zëvendësuar A me ndonjë vlerë tjetër B dhe pastaj ka rivendosur A- në midis tyre. Në disa algoritme (p.sh., ato në të cilat vlerat në memorie janë tregues për blloqe të alokuara dinamikisht), ky problem ABA mund të çojë në rezultate të pasakta. Zgjidhja më e zakonshme përdor një udhëzim cas me gjerësi të dyfishtë për të përditësuar si treguesin ashtu edhe një numërues ngjitur; për fat të keq, një udhëzim i tillë kërkon një format të veçantë udhëzimi për të specifikuar regjistra të shumtë, kryen disa lexime dhe shkrime dhe mund të ketë funksionim kompleks të autobusit.
Alternativa lr / sc është më efikase. Zakonisht kërkon vetëm një ngarkesë memorieje, dhe minimizimi i operacioneve të ngadalta të memories është i dëshirueshëm. Është gjithashtu i saktë: kontrollon të gjitha qasjet në qelizën e memories, në vend që të sigurojë vetëm një model biti. Megjithatë, ndryshe nga cas, mund të lejojë livelock, në të cilin dy ose më shumë fije shkaktojnë në mënyrë të përsëritur dështimin e udhëzimeve të njëri-tjetrit. RISC-V garanton progres përpara (pa livelock) nëse kodi ndjek rregullat mbi kohën dhe sekuencën e udhëzimeve: 1) Duhet të përdorë vetëm nëngrupin I. 2) Për të parandaluar gabimet e përsëritura të cache-s, kodi (duke përfshirë ciklin e riprovimit) duhet të zërë jo më shumë se 16 udhëzime të njëpasnjëshme. 3) Nuk duhet të përfshijë udhëzime sistemi ose gardhi, ose të marrë degë prapa midis lr dhe sc . 4) Dega prapa në ciklin e riprovimit duhet të jetë në sekuencën origjinale.
Specifikimi jep një shembull se si të përdoren udhëzimet atomike read-modify-write për të bllokuar një strukturë të dhënash.
Subset-i i kompresuar (Compressed Subset)
[Redakto | Redakto nëpërmjet kodit]Standardi RISC-V ISA specifikon që të gjitha udhëzimet janë 32 bit. Kjo e bën zbatimin veçanërisht të thjeshtë, por ashtu si procesorët e tjerë RISC me kodim udhëzimesh 32-bit, rezulton në një madhësi më të madhe të kodit sesa në grupet e udhëzimeve me udhëzime me gjatësi të ndryshueshme.
Për të kompensuar, udhëzimet 32-bit të RISC-V janë në fakt 30 bit; së opcode-it është e rezervuar për një set udhëzimesh të kompresuara me gjatësi të ndryshueshme, RVC, opsional (por të rekomanduar), që përfshin udhëzime 16-bitëshe. Ashtu si në SuperH, ARM Thumb dhe MIPS16, udhëzimet e kompresuara janë thjesht kodime alternative për një nëngrup të udhëzimeve më të mëdha. Ashtu si SuperH, por ndryshe nga setet e kompresuara ARM ose MIPS, hapësira ishte e rezervuar që nga fillimi, kështu që nuk ka një mënyrë të veçantë funksionimi. Udhëzimet standarde dhe të kompresuara mund të përzihen lirisht. : 97 (Shkronja e zgjatur është C .)
Meqenëse (ashtu si Thumb-1 dhe MIPS16) udhëzimet e kompresuara janë thjesht kodime alternative (pseudonime) për një nëngrup të zgjedhur të udhëzimeve më të mëdha, kompresimi mund të zbatohet në asembler, dhe nuk është thelbësore që kompiluesi të dijë fare për të.
Një prototip i RVC u testua në vitin 2011. Kodi i prototipit ishte 20% më i vogël se një PC x86 dhe kod i kompresuar MIPS, dhe 2% më i madh se kodi ARM Thumb-2 . Ai gjithashtu uli ndjeshëm si memorien e nevojshme të memorjes së përkohshme ashtu edhe përdorimin e vlerësuar të energjisë së sistemit të memories.
Studiuesi synonte të zvogëlonte madhësinë binare të kodit për kompjuterë të vegjël, veçanërisht sistemet kompjuterike të integruara . Prototipi përfshinte 33 nga udhëzimet më të përdorura, të rikoduara si formate kompakte 16-bitëshe duke përdorur kode operacionesh të rezervuara më parë për bashkësinë e kompresuar. Kompresimi u bë në asembler, pa ndryshime në kompilator. Udhëzimet e kompresuara hoqën jashtë fusha që shpesh janë zero, përdorën vlera të vogla të menjëhershme ose aksesuan nëngrupe (16 ose 8) të regjistrave. addi është shumë i zakonshëm dhe shpesh i kompresueshëm.
Pjesa më e madhe e ndryshimit në madhësi krahasuar me setin Thumb të ARM ndodhi sepse RISC-V dhe prototipi nuk kanë udhëzime për të ruajtur dhe rivendosur regjistra të shumtë. Në vend të kësaj, kompiluesi gjeneroi udhëzime konvencionale që i qasen pirgut. Asambleja prototip RVC shpesh i konvertoi këto në forma të kompresuara që ishin gjysma e madhësisë. Megjithatë, kjo prapë merrte më shumë hapësirë kodi sesa udhëzimet ARM që ruajnë dhe rivendosin regjistra të shumtë. Studiuesi propozoi të modifikonte kompiluesin për të thirrur rutinat e bibliotekës për të ruajtur dhe rivendosur regjistra. Këto rutina do të tentonin të mbeteshin në një memorje të përkohshme kodi dhe kështu do të funksiononin shpejt, megjithëse ndoshta jo aq shpejt sa një udhëzim ruajtjeje të shumëfishtë.
RVC standarde kërkon përdorim të rastit të udhëzimeve 32-bit. Disa propozime jo-standarde të RVC janë të plota, nuk kërkojnë udhëzime 32-bit dhe thuhet se kanë dendësi më të larta se RVC standarde. [26] [27] Një propozim tjetër ndërtohet mbi këto dhe pretendon të përdorë gjithashtu një gamë më të vogël kodimi. [28]
Nënbashkësi e integruar
[Redakto | Redakto nëpërmjet kodit]Një bashkësi udhëzimesh për CPU-të më të vogla të integruara (bashkësia E) reduktohet në mënyra të tjera: Mbështeten vetëm 16 nga 32 regjistrat e numrave të plotë. : Kapitulli 4 Mund të përdoren të gjitha zgjerimet aktuale; po merret në konsideratë një zgjerim me pikë lundruese për të përdorur regjistrat e numrave të plotë për vlerat me pikë lundruese. Seti i udhëzimeve të privilegjuara mbështet vetëm modalitetin e makinës, modalitetin e përdoruesit dhe skemat e memories që përdorin zhvendosjen e adresës bazë dhe të lidhur.
Ka pasur diskutime për një profil mikrokontrolluesi për RISC-V, për të lehtësuar zhvillimin e sistemeve të ngulitura thellë. Ai përqendrohet në mbështetje më të shpejtë dhe të thjeshtë në gjuhën C për ndërprerjet, mënyra sigurie të thjeshtuara dhe një ndërfaqe binare të thjeshtuar të aplikacionit POSIX . [29]
Korrespondentët kanë propozuar gjithashtu ISA RV16E 16-bitëshe më të vogla, jo standarde: Disa propozime serioze do të përdornin udhëzimet C 16-bitëshe me regjistra 8 × 16-bitëshe. [30] [31] Një shaka e 1 prillit propozoi një rregullim shumë praktik: Përdorni regjistra të numrave të plotë 16 × 16-bitëshe, me ISA-të standarde EIMC (duke përfshirë udhëzimet 32-bitëshe). Shakaja ishte të përdornim ndërrimin e bankës kur një CPU 32-bitëshe do të ishte qartësisht superiore me hapësirën më të madhe të adresave. [32]
Seti i udhëzimeve të privilegjuara
[Redakto | Redakto nëpërmjet kodit]ISA e RISC-V përfshin një specifikim të veçantë të grupit të udhëzimeve të privilegjuara, i cili përshkruan kryesisht tre nivele privilegji plus një modalitet hipervizori ortogonal. Që prej dhjetorit 2021[update] , versioni 1.12 është ratifikuar nga RISC-V International.
Versioni 1.12 i specifikimit mbështet disa lloje sistemesh kompjuterike:
- Sisteme që kanë vetëm modalitetin e makinës, ndoshta për sisteme të thjeshta të ngulitura,
- Sisteme me modalitetin e makinës (për një mbikëqyrës të thjeshtë) dhe modalitetin e përdoruesit për të zbatuar sisteme të integruara relativisht të sigurta,
- Sisteme me modalitetin e makinës, modalitetin e mbikëqyrësit (për sistemin operativ) dhe modalitetet e përdoruesit për sistemet tipike operative.
Këto korrespondojnë përafërsisht me sisteme me deri në katër unaza privilegji dhe sigurie, në maksimum: makinë, hipervizor, mbikëqyrës dhe përdorues. Çdo shtresë pritet gjithashtu të ketë një shtresë të hollë të softuerit mbështetës të standardizuar që komunikon me një shtresë ose harduer më të privilegjuar.
ISA gjithashtu përfshin një modalitet hipervizori, i cili është i veçantë dhe punon paralel me modalitetet e përdoruesit dhe të mbikëqyrësit. Karakteristika kryesore është një bit konfigurimi, i cili ose lejon kodin në nivel mbikëqyrësi të ketë qasje në regjistrat e hipervizorit, ose shkakton një ndërprerje kur ndodh një qasje e paautorizuar. Ky bit mundëson që modaliteti i mbikëqyrësit të menaxhojë drejtpërdrejt harduerin që i nevojitet hipervizorit, duke thjeshtuar zbatimin e hipervizorëve që ekzekutohen mbi një sistem operativ.
Ky modalitet është veçanërisht i dobishëm për kompjuterë me shkallë të lartë izolimi të depozitave. Për hipervizorë që nuk janë të strehuar (unhosted), bit-i mund të shkaktojë ndërprerje për këto qasje, duke i dhënë hipervizorit kontrollin e duhur. Dizajni gjithashtu thjeshton vendosjen e hipervizorëve të niveleve të ndryshme, ku një hipervizor mund të funksionojë nën një hipervizor tjetër, dhe nëse është e nevojshme, bërthama mund të përdorë veçoritë e hipervizorit brenda kodit të saj.
Si rezultat, forma hipervizore e ISA mbështet pesë modalitete: makinë, mbikëqyrës, përdorues, mbikëqyrës-nën-hipervizor, dhe përdorues-nën-mbikëqyrës.
Specifikimi i grupit të udhëzimeve të privilegjuara përcakton në mënyrë eksplicite fijet e harduerit, ose hartat . Fijet e shumëfishta të harduerit janë një praktikë e zakonshme në kompjuterët më të aftë. Kur një fije ngec, duke pritur për memorie, të tjerat shpesh mund të vazhdojnë. Fijet e harduerit mund të ndihmojnë në përdorimin më të mirë të numrit të madh të regjistrave dhe njësive të ekzekutimit në CPU-të e shpejta jashtë rendit. Së fundmi, fijet e harduerit mund të jenë një mënyrë e thjeshtë dhe e fuqishme për të trajtuar ndërprerjet : Nuk kërkohet ruajtje ose rivendosje e regjistrave, thjesht ekzekutimi i një fijeje të ndryshme të harduerit. Megjithatë, e vetmja fije hardueri e kërkuar në një kompjuter RISC-V është fija zero.
Ndërprerjet dhe përjashtimet trajtohen së bashku. Përjashtimet shkaktohen nga ekzekutimi i udhëzimeve duke përfshirë udhëzimet e paligjshme dhe thirrjet e sistemit, ndërsa ndërprerjet shkaktohen nga ngjarje të jashtme. Përkufizimet ekzistuese të regjistrave të kontrollit dhe statusit mbështesin përjashtimet e gabimeve dhe të memories të RISC-V, dhe një numër të vogël ndërprerjesh, zakonisht nëpërmjet një "ndërprerësi lokal me bërthamë të avancuar" (ACLINT). [33] Për sistemet me më shumë ndërprerje, specifikimi përcakton gjithashtu një kontrollues ndërprerjesh në nivel platforme (PLIC) për të koordinuar një numër të madh ndërprerjesh midis procesorëve të shumtë. Ndërprerjet gjithmonë fillojnë në nivelin më të lartë të makinës me privilegje, dhe regjistrat e kontrollit të secilit nivel kanë bit të qartë përçimi për të drejtuar ndërprerjet në kodin me më pak privilegje. Për shembull, hipervizori nuk ka nevojë të përfshijë softuer që ekzekutohet në çdo ndërprerje për të përcjellë një ndërprerje në një sistem operativ. Në vend të kësaj, gjatë konfigurimit, ai mund të vendosë bit për të përcjellë ndërprerjen.
Disa sisteme memorieje mbështeten në specifikim. Specifikimi "Vetëm fizik" është i përshtatshëm për sistemet më të thjeshta të ngulitura. Ekzistojnë gjithashtu katër sisteme memorieje virtuale në stilin UNIX për memorien e ruajtur në memorje në sistemet e ruajtjes masive. Sistemet e memories virtuale mbështesin MMU me katër madhësi, me adresa me madhësi 32, 39, 48 dhe 57 bit. Të gjitha sistemet e memories virtuale mbështesin 4 Faqet KiB, pemët shumënivelëshe të tabelave të faqeve dhe përdorin algoritme shumë të ngjashme për të ecur në pemët e tabelave të faqeve. Të gjitha janë të dizajnuara për ecje në tabelë faqesh ose në harduer ose në softuer. Për të ulur opsionalisht koston e ecjeve në tabelën e faqeve, faqet me madhësi shumë të madhe mund të jenë faqe gjethesh në nivele më të larta të pemës së tabelës së faqeve të një sistemi. SV32 mbështetet vetëm në implementimet 32-bit, ka një pemë tabelash faqesh me dy shtresa dhe mbështet 4 Superfaqe MiB. SV39 ka një tabelë faqesh me tre nivele dhe mbështet 2 Superfaqe MiB dhe 1 GiB gigafaqe. SV48 është i nevojshëm për të mbështetur SV39. Ai gjithashtu ka një tabelë faqesh me 4 nivele dhe mbështet 2 Superfaqe MiB, 1 GiB gigafaqe dhe 512 GiB terafaqe. SV57 ka një tabelë faqesh me 5 nivele dhe mbështet 2 Superfaqe MiB, 1 GiB gigafaqe, 512 GiB terafaqe dhe 256 TiB petafaqe. Superfaqet janë të rreshtuara në kufijtë e faqes për madhësinë më të ulët të faqes.
Manipulimi i biteve
[Redakto | Redakto nëpërmjet kodit]Disa zgjerime të ISA-së për manipulimin e biteve u miratuan në nëntor 2021 (Zba, Zbb, Zbc, Zbs). Zgjerimet Zba, Zbb dhe Zbs janë zgjerime të instruksioneve standarde për numrat e plotë (I).
- Zba përmban instruksione që përshpejtojnë llogaritjen e adresave të elementëve në vargje me madhësi të dhënash 2, 4 ose 8 bajt (sh1add, sh2add, sh3add), si dhe për procesorë 64-bit (dhe 128-bit) kur indeksohen me numra të plotë pa shenjë (add.uw, sh1add.uw, sh2add.uw, sh3add.uw dhe slli.uw).
- Zbb përfshin operacione për të numëruar bitët 0 fillestarë, bitët pasues ose të gjithë bitët 1 në operacione të plota dhe me fjalë 32-bitëshe (clz, clzw, ctz, ctzw, cpop, cpopw), kthimin e rendit të bajteve (rev8), instruksione logjike me mohim të hyrjes së dytë (andn, orn, xnor), zgjerim me shenjë dhe me zero (sext.b, sext.h, zext.h) që nuk mund të implementoheshin si raste të veçanta të instruksioneve të tjera (andi, addiw, add.wu), min dhe max të numrave të plotë (me shenjë dhe pa shenjë), si dhe rrotullimin e biteve majtas dhe djathtas në regjistra dhe fjalë 32-bitëshe (rori, roriw, ror, rorw, rol, rolw). Ai gjithashtu përfshin një operacion “ose kombinim” sipas bajteve, i dobishëm për zbulimin e një bajti zero në një regjistër të plotë, që përdoret në trajtimin e vargjeve të përfunduara me null në stilin C.
- Zbs lejon vendosjen, marrjen, pastrimin dhe aktivizimin/çaktivizimin e biteve individualë në një regjistër sipas indeksit të tyre (bseti, bset, bexti, bext, bclri, bclr, binvi, binv).
.Zgjerimi Zbc ka udhëzime për "shumëzim pa mbartje", i cili bën shumëzimin e polinomeve mbi fushën Galois GF(2) (clmul, clmulh, clmulr). Këto janë të dobishme për kriptografinë dhe kontrollet CRC të integritetit të të dhënave.
Bërë me mirë, një nënset më i specializuar për manipulimin e bitave mund të ndihmojë në operacione kriptografike, grafike dhe matematike. Instruksione të mëtejshme që janë diskutuar përfshijnë instrukcione për të shtyrë njësi, një bit-reverse të përgjithësuar, permutime shuffle dhe crossbar, vendosje dhe nxjerrje të fushave të bitit, paketim dhe depozitim i dy fjalëve, bajtëve ose gjysmëfjalëve në një regjistër, instrukcione CRC, operacione bit-matriks (vetëm RV64), përzierje kushtore, lëvizje kushtore, dhe funnel shifts. Kriteret për përfshirje të dokumentuara në draft ishin të përputhshme me filozofitë dhe formatet e ISA-së RISC-V, përmirësime të konsiderueshme në dendësinë ose shpejtësinë e kodit (p.sh., të paktën një reduktim 3-në-1 në instruksione), dhe aplikime të rëndësishme në botën reale, përfshirë mbështetjen ekzistuese të kompajlerëve.Versioni 0.93 i zgjerimit të manipulimit të biteve përfshin këto udhëzime; [34] disa prej tyre tani janë në versionin 1.0.1 të zgjerimit të kriptografisë së udhëzimeve skalare dhe të entropisë .
SIMD i paketuar
[Redakto | Redakto nëpërmjet kodit]Udhëzimet e paketuara-SIMD përdoren gjerësisht nga CPU-të komerciale për të përshpejtuar me kosto të ulët përpunimin e multimedias dhe sinjaleve të tjera dixhitale. Për sisteme të thjeshta dhe me kosto të reduktuar RISC-V, specifikimi bazë i ISA-së propozonte përdorimin e bitëve të regjistrave me pikë lundruese për të kryer aritmetikë paralele të nënfjalëve me udhëzim të vetëm, të dhëna të shumëfishta ( SIMD ).
Në vitin 2017, një shitës publikoi një propozim më të detajuar në listën e postimeve, dhe ky mund të citohet si versioni 0.1. [35] Që prej 2019[update] , efikasiteti i këtij ISA të propozuar varion nga 2x në 5x një CPU bazë për një shumëllojshmëri kodekësh DSP. [36] Propozimit i mungonin formatet e udhëzimeve dhe një caktim licence për RISC-V International, por u shqyrtua nga lista e postimeve. [35] Disa pjesë jopopullore të këtij propozimi ishin se ai shtonte një kod kushti, i pari në një dizajn RISC-V, lidhte regjistrat ngjitur (gjithashtu një i pari) dhe kishte një numërues laku që mund të jetë i vështirë për t'u zbatuar në disa mikroarkitektura.
Set vektorësh
[Redakto | Redakto nëpërmjet kodit]Seti i propozuar i udhëzimeve të përpunimit vektorial mund ta bëjë setin e paketuar SIMD të vjetëruar. Projektuesit shpresojnë të kenë fleksibilitet të mjaftueshëm që një CPU të mund të zbatojë udhëzime vektoriale në regjistrat e një procesori standard. Kjo do të mundësonte zbatime minimale me performancë të ngjashme me një ISA multimediale, si më sipër. Megjithatë, një bashkëprocesor i vërtetë vektorial mund të ekzekutojë të njëjtin kod me performancë më të lartë. [37]
Që nga viti 2021, zgjerimi i vektorit është në versionin 1.0. Ai është një dizajn konservator dhe fleksibël i një procesori vektorial me precizion të përzier për përdorim të përgjithshëm, i përshtatshëm për të ekzekutuar bërthama llogaritëse (compute kernels). Kodi mund të portojë lehtësisht në CPU-të me gjatësi vektoriale të ndryshme, idealisht pa pasur nevojë për rikompilim.
Në të kundërt, zgjerimet SIMD me vektor të shkurtër janë më pak të përshtatshme. Këto përdoren në x86, ARM dhe PA-RISC . Në këto, një ndryshim në gjerësinë e fjalës detyron një ndryshim në bashkësinë e udhëzimeve për të zgjeruar regjistrat vektorialë (në rastin e x86, nga regjistrat MMX 64-bit në Zgjerime SIMD Streaming (SSE) 128-bit, në Zgjerime Vektoriale të Avancuara (AVX) 256-bit dhe AVX-512 ). Rezultati është një bashkësi udhëzimesh në rritje dhe një nevojë për të transferuar kodin funksional në udhëzimet e reja.
Në ISA-në vektoriale RISC-V, në vend që të fiksohet gjatësia e vektorit në arkitekturë, janë të disponueshme udhëzime ( vsetvli, vsetivli dhe vsetvl ) të cilat marrin një madhësi të kërkuar dhe e vendosin gjatësinë e vektorit në minimumin e limitit të harduerit dhe madhësisë së kërkuar. Pra, propozimi i RISC-V është më shumë si një dizajn me vektor të gjatë i Cray -t ose Zgjerimi i Vektorit të Shkallëzueshëm i ARM-së. Kjo do të thotë, çdo vektor në deri në 32 vektorë është i njëjtë me gjatësi. [38] : 25
Aplikacioni specifikon gjerësinë totale të vektorit që i nevojitet, ndërsa procesori përcakton gjatësinë maksimale të vektorit që mund të ofrojë duke përdorur burimet e disponueshme në çip. Kjo realizohet përmes një instruksioni të quajtur vsetcfg, i cili ka katër operandë të menjëhershëm që përcaktojnë numrin e regjistrave vektorialë për secilën gjerësi të disponueshme që kërkohet. Totali nuk mund të tejkalojë limitet e adresueshme prej 32, por mund të jetë më i vogël nëse aplikacioni nuk ka nevojë për të gjithë regjistrat.
Gjatësia e vektorit gjithashtu kufizohet nga hapësira e ruajtjes në çip, e cila ndahet me numrin e bajtëve të nevojshëm për secilën hyrje. Përveç kësaj, mund të ekzistojnë kufizime shtesë harduerike, të cilat megjithatë mund të lejojnë implementime në stilin SIMD. [39]
Jashtë sytheve vektoriale, aplikacioni mund ta zerojë numrin e regjistrave vektorialë të kërkuar, duke i kursyer sistemit operativ punën e ruajtjes së tyre në çelësat e kontekstit . [40]
Gjatësia e vektorit nuk është vetëm arkitekturore e ndryshueshme, por është projektuar të ndryshojë edhe në kohën e ekzekutimit. Për të arritur këtë fleksibilitet, grupi i udhëzimeve ka të ngjarë të përdorë shtigje të dhënash me gjerësi të ndryshueshme dhe operacione të tipit të ndryshueshëm duke përdorur mbingarkesë polimorfike. [41] Plani është që këto të mund të zvogëlojnë madhësinë dhe kompleksitetin e ISA-së dhe kompajlerit. [41]
Procesorët vektorialë eksperimentalë të kohëve të fundit me shtigje të dhënash me gjerësi të ndryshueshme tregojnë gjithashtu rritje fitimprurëse të operacioneve për: sekondë (shpejtësi), sipërfaqe (kosto më e ulët) dhe vat (jetëgjatësi më e gjatë e baterisë). [42]
Ndryshe nga një njësi tipike moderne për përpunimin e grafikës, nuk ka plane për të ofruar pajisje të posaçme për të mbështetur predikimin e degëve . Në vend të kësaj, do të përdoret predikim i bazuar në kompajler me kosto më të ulët. [43] [44]
Sistemi i debugimit të jashtëm
[Redakto | Redakto nëpërmjet kodit]Ekziston një specifikim paraprak për debugger -in e asistuar nga hardueri i RISC-V. Debugger-i do të përdorë një sistem transporti si Joint Test Action Group ( JTAG ) ose Universal Serial Bus ( USB ) për të aksesuar regjistrat e debugimit. Një ndërfaqe standarde e debugimit të harduerit mund të mbështesë ose një ndërfaqe abstrakte të standardizuar ose furnizimin me udhëzime . [45] [46]
Që nga janari 2017, forma e saktë e ndërfaqes abstrakte mbetet e papërcaktuar, por propozimet përfshijnë një sistem të hartuar në memorie me adresa të standardizuara për regjistrat e pajisjeve të debug-ut ose një regjistër komande dhe një regjistër të dhënash të aksesueshëm nga sistemi i komunikimit.
Korrespondentët deklarojnë se sisteme të ngjashme përdoren nga ndërfaqja background debug mode (BDM) e Freescale për disa CPU, si dhe nga ARM, OpenRISC, dhe LEON i Aeroflex.
Në ushqyerjen e udhëzimeve, CPU-ja do të përpunojë një përjashtim debugimi për të ekzekutuar udhëzime individuale të shkruara në një regjistër. Kjo mund të plotësohet me një regjistër kalimi të të dhënave dhe një modul për të aksesuar drejtpërdrejt kujtesën. Ushqimi i udhëzimeve i lejon debuguesit të aksesojë kompjuterin pikërisht ashtu siç do të bënte softueri. Ai gjithashtu minimizon ndryshimet në CPU dhe përshtatet me shumë lloje CPU-sh. Kjo u tha të ishte veçanërisht e përshtatshme për RISC-V sepse është projektuar posaçërisht për shumë lloje kompjuterësh. Regjistri i kalimit të të dhënave i lejon një debuguesi të shkruajë një cikël lëvizjeje të të dhënave në RAM dhe më pas të ekzekutojë cikëlin për të lëvizur të dhënat brenda ose jashtë kompjuterit me një shpejtësi afër shpejtësisë maksimale të kanalit të të dhënave të sistemit të debugimit. [47] Korrespondentët thonë se sisteme të ngjashme përdoren nga MIPS Technologies MIPS, Intel Quark, Xtensa e Tensilica dhe për ndërfaqen e modalitetit të debugimit në sfond (BDM) të CPU-ve Freescale Power ISA . [47]
Një shitës propozoi një nënsistem gjurmimi hardueri për standardizim, dhuroi një dizajn konform dhe nisi një shqyrtim. [48] [49] Propozimi është për një modul hardueri që mund të gjurmojë ekzekutimin e kodit në shumicën e CPU-ve RISC-V. Për të ulur shkallën e të dhënave dhe për të lejuar shtigje më të thjeshta ose më pak të kushtueshme për të dhënat e gjurmimit, propozimi nuk gjeneron të dhëna gjurmimi që mund të llogariten nga një imazh binar i kodit. Ai dërgon vetëm të dhëna që tregojnë shtigje "të painfertueshme" përmes programit, siç janë degët e kushtëzuara që merren. Për të ulur shkallët e të dhënave, degët që mund të llogariten, siç janë degët e pakushtëzuara, nuk gjurmohen. Ndërfaqja e propozuar midis modulit dhe njësisë së kontrollit është një sinjal logjik për secilin lloj udhëzimi të painfertueshëm. Adresat dhe të dhënat e tjera duhet të ofrohen në një autobus të specializuar të bashkangjitur në burimet e duhura të të dhënave në një CPU. Struktura e të dhënave e dërguar në një njësi gjurmimi të jashtme është një seri mesazhesh të shkurtra me të dhënat e nevojshme. Detajet e kanalit të të dhënave nuk përshkruhen qëllimisht në propozim, sepse disa prej tyre ka të ngjarë të kenë kuptim.
Implementime
[Redakto | Redakto nëpërmjet kodit]Sfondi strategjik
[Redakto | Redakto nëpërmjet kodit]Organizata RISC-V mban një listë të implementimeve të CPU-ve dhe SoC-ve të RISC-V. [50] Për shkak të luftërave tregtare dhe sanksioneve të mundshme që do ta pengonin Kinën të hynte në ISA-të pronësore, që nga viti 2023 vendi planifikonte të zhvendoste shumicën e arkitekturave të CPU-ve dhe dizenjove të mikrokontrolluesve (MCU) në bërthama RISC-V. [51]
Në vitin 2023, Bashkimi Evropian ishte i vendosur të ofronte 270 milionë euro brenda një të ashtuquajture Marrëveshje Partneriteti Kornizë (FPA) për një kompani të vetme që ishte në gjendje dhe e gatshme të kryente një projekt zhvillimi të CPU-së RISC-V që synonte superkompjuterët, serverët dhe qendrat e të dhënave. [52] Qëllimi i Bashkimit Evropian ishte të bëhej i pavarur nga zhvillimet politike në vendet e tjera dhe të "forconte sovranitetin e tij dixhital dhe të vendoste standarde, në vend që të ndiqte ato të të tjerëve". [53]
Sipas The Register, media kineze raportoi në mars të vitit 2025 nga konferenca ku u lançua CPU-ja e nivelit të serverit Alibaba DAMO Xuantie C930 se drejtuesit e lartë të Alibaba Cloud kishin parashikuar që RISC-V do të bëhej një arkitekturë cloud kryesore që në vitin 2030. [54] Sipas Reuters, organet qeveritare kineze në vitin 2025 po punonin për "udhëzime" që do të promovonin përdorimin e gjerë të RISC-V në të gjithë Kinën. [54]
Zhvillime të rëndësishme për tregun
[Redakto | Redakto nëpërmjet kodit]Në vitin 2019, SiFive nga Santa Clara, Kaliforni, njoftoi bërthamën e parë të CPU-së me performancë të lartë RISC-V, IP-në e Processorit të Serisë U8. [55] SiFive u krijua posaçërisht për zhvillimin e pajisjeve RISC-V dhe filloi të lançonte modele procesori në vitin 2017. [56] [57] Këto përfshinin një sistem me katër bërthama, 64-bit (RV64GC) në një çip (SoC) të aftë për të ekzekutuar sisteme operative me qëllim të përgjithshëm si Linux . [58]
Në korrik 2019, DAMO Academy, [59] [60] krahu kërkimor i Alibaba Group në Hangzhou, Kinë, njoftoi 2.5 Procesor Xuantie 910 me 16 bërthama dhe 64 bit (RV64GC) GHz, i cili nuk funksionon . [61] Në tetor 2021, Xuantie 910 u lançua si një dizajn me burim të hapur. [62]
Në vitin 2022, Imagination Technologies e Kings Langley, Angli, njoftoi se kishte çiftëzuar bërthamën e saj 64-bit Catapult RISC-V, me GPU-në e saj IMG BXE-2-32, në një SoC, i cili u validua nga Andes Technology. [63] GPU-ja BXE mbështet Vulkan 1.2, OpenGL ES 3.x/2.0/1.1, OpenCL 3.0 dhe API-të Android NN HAL. [63]
Në nëntor 2023, DAMO zbuloi tre procesorë të përditësuar: Xuantie C920, Xuantie C907 dhe Xuantie R910; këta procesorë ishin të destinuar për një sërë fushash aplikimi, duke përfshirë automjetet autonome, inteligjencën artificiale (IA), disqet e forta të ndërmarrjeve dhe komunikimet në rrjet. [64]
Në vitin 2024, SpacemiT, një kompani kineze me seli në Hangzhou, zhvilloi "Key Stone K1" të tyre, një procesor tetë-bërthamor 64-bit që është i disponueshëm në kompjuterin BPI-F3, si dhe pajisjet e tjera të mëposhtme: LicheePi 3A, Milk-V Jupiter, DeepComputing DC-ROMA LAPTOP II dhe SpacemiT MUSEbook që paraqet sistemin operativ Bianbu OS. Procesori bazohet në dizajnin e bërthamës X60, integron një njësi grafike Imagination Technologies IMG BXE-2-32 dhe mbështet zgjerimin vektorial RVV 1.0. [65]
Në janar 2025, SpacemiT njoftoi zhvillimin e një procesori serveri me deri në 64 bërthama RISC-V, të quajtur "VitalStone V100" dhe të bërë me 12 teknologjia e procesit të klasës nm. [66] [67] [68] Procesori VitalStone V100 bazohet kryesisht në projektin OpenC910, një projekt i cili u përdor edhe nga procesori Xuantie C910, i projektuar nga Akademia DAMO e Alibaba-s. [69]
Në mars të vitit 2025, Akademia DAMO e Alibaba-s lançoi CPU-në Xuantie C930 të nivelit të serverit, [70] e cila mbështeti familjen e profileve RVA23 të gjeneratës së ardhshme, të kërkuara nga Ubuntu Linux që nga tetori i vitit 2025. [71] [72] Bërthama e CPU-së C930 u reklamua si ideale për servera, kompjuterë personalë dhe makina autonome. [71] Ajo krijoi konkurrencë të konsiderueshme për kompaninë SiFive me bazë në Kaliforni dhe bërthamën e saj P870, të cilën SiFive e kishte lançuar tashmë në tetor të vitit 2023. [73] [74] P870 ishte bërthama e parë SiFive që mbështeti familjen e re të profileve RVA23. [75] Si në lidhje me C930 ashtu edhe me P870, asnjë çip fizik nuk ishte ndërtuar për shitje të përgjithshme në gusht të vitit 2025, megjithatë, dizajnet mbetën në plan të parë. [76]
Zhvillime të tjera
[Redakto | Redakto nëpërmjet kodit]Ekzistuese
[Redakto | Redakto nëpërmjet kodit]Implementimet ekzistuese pronësore përfshijnë:
- Akeana nga Santa Clara, CA, një anëtar Premier i RISC-V International, ofron një gamë të gjerë IP të bazuar në RISC-V. Ofrimet e saj variojnë nga bërthamat e vogla 32-bit deri te bërthamat e avancuara 64-bit për klasën e datacenter, me FPU, Vector, Hypervisor dhe kapacitete multicore, si dhe IOMMU, infrastrukturë ndër-lidhjeje me shpejtësi të lartë, akseleratorë AI dhe IP të lidhura.
- Andes Technology Corporation nga Hsinchu, Taiwan, një anëtar themelues Premier i RISC-V International.[77] Familjet e CPU-ve të saj RISC-V variojnë nga bërthamat e vogla 32-bit deri te bërthamat e avancuara 64-bit me kapacitete DSP, FPU, vector, superscalar dhe/ose multicore..
- Bouffalo Lab ka një seri MCU-sh të bazuara në RISC-V (RV32IMACF, BL60x/BL70x series)[78]
- CloudBEAR është një kompani IP procesorësh që zhvillon bërthamat e veta RISC-V për një gamë aplikacionesh.[79]
- Codasip nga Mynihu, Gjermani, një anëtar themelues i RISC-V International,[77] filloi zhvillimin e një game bërthamash me fuqi të ulët të integruara, performancë të lartë të integruar dhe procesorësh aplikacioni në 2015.[80][81][82]Në 2016, Codasip dhe UltraSoC zhvilluan IP plotësisht të mbështetur për SOC të integruar RISC-V që kombinon bërthamat RISC-V të Codasip dhe IP të tjera me debug, optimizim dhe analiza të UltraSoC.[83]
- Cortus nga Mauguio, zona e Montpellier, Francë, është anëtar origjinal themelues Platinum i fondacionit RISC-V dhe i RISC-V International.[77] Kompania ofron disa implementime RISC-V. Cortus ofron shërbime dizajni ASIC duke përdorur portofolin e saj të IP-së, duke përfshirë procesorë RISC-V 32/64-bit nga të thjeshtët deri te procesorët shumë performancë, si dhe sisteme digjitale, analog, RF, siguri dhe një ekosistem të plotë IDE/toolchain/debug.
- Espressif nga Shanghai, Kinë, shtoi një ko-procesor RISC-V ULP në mikro-kontrollorin e tyre ESP32-S2. Në nëntor 2020, Espressif shpalli ESP32-C3, një MCU 32-bit, me bërthamë të vetme, të bazuar në RISC-V (RV32IMC).
- Shoqëria Fraunhofer, me bazë në Dresden, Gjermani, ishte organizata e parë që zhvilloi një bërthamë RISC-V që mund të përmbushë kërkesat e sigurisë funksionale. IP Core EMSA5 është një procesor 32-bit me pipeline pesë-stadium dhe është i disponueshëm si variant i përgjithshëm (EMSA5-GP) dhe si variant sigurie (EMSA5-FS) që mund të përmbushë standardin ISO 26262 Automotive Safety Integrity Level-D. [84]
- GigaDevice nga Beijing, Kinë, zhvilloi një seri MCU-sh të bazuara në RISC-V (RV32IMAC, seria GD32V) në 2019,[85] me njërën prej tyre të përdorur në bordin Longan Nano të prodhuar nga kompania kineze Sipeed.[86]
- Google zhvilloi modul sigurie Titan M2 për Pixel 6 dhe Pixel 7.[87]
- GreenWaves Technologies shpalli disponueshmërinë e GAP8, një SoC 32-bit me 1 kontrollues plus 8 bërthama llogaritëse, dhe bordin e zhvillimit GAPuino GAP8 në shkurt 2018; bordi filloi të shpërndahej në maj 2018.[88][89][90]
- Imagination Technologies nga Kings Langley, Angli, lançoi RTXM-2200[91] në 2023, bërthama e tyre e parë nga gama Catapult, një CPU embedded determinist 32-bit në kohë reale.
- Instant SoC ofron bërthama RISC-V nga FPGA, Sistemi në një çip, përfshirë bërthamat RISC-V, të përcaktuara nga C++.
- Micro Magic Inc. shpalli bërthamën më të shpejtë 64-bit RISC-V në botë, duke arritur 5 GHz dhe 13,000 CoreMarks në tetor 2020.
- MIPS Technologies nga San Jose, California, filloi zhvillimin e bërthamave RISC-V në 2021 dhe prezantoi implementimin e parë eVocore P8700 në dhjetor 2022.[92]
- Seagate, në dhjetor 2020 shpalli se kishte zhvilluar dy bërthama RISC-V për qëllime të përgjithshme për përdorim në kontrollet e ardhshme të pajisjeve të saj të ruajtjes.
- StarFive (fillimisht distributor ekskluziv i produkteve IP të bërthamës SiFive RISC-V në rajonin e Kinës së Madhe) nga Shanghai, Kinë, ofron dy implementime RISC-V – një për aplikacione big data dhe një për ruajtje llogaritëse.
- Syntacore,[93] Një anëtar themelues i RISC-V International dhe një nga vendorët e parë komercialë të IP-së RISC-V, zhvillon dhe licenson familje IP RISC-V që nga viti 2015. Që nga viti 2018, linja e produkteve përfshin tetë bërthama 32- dhe 64-bit, duke përfshirë bërthamën MCU SCR1 me burim të hapur (RV32I/E[MC]).
[94] SoC-të e para komerciale bazuar në IP të Syntacore u demonstruan në 2016.[95]
- WinChipHead (WCH), një prodhues kinez i gjysmëpërçuesve për çipa USB të njohur dhe të lirë si CH340 dhe mikro-kontrollorë ARM[96] prezantoi një linjë të thjeshtë, të lirë RISC-V MCU CH32Vxxx, me modelin CH32V003 që kushton 0.10 USD.[97]
- Që nga 2020, sektori indian i mbrojtjes dhe strategjisë filloi të përdorte procesorin Risecreek 64-bit RISC-V me 100–350 MHz, i zhvilluar nga IIT Madras dhe i fabrikuar nga Intel me procesin 22 nm FinFET.[98] IIT Madras dhe ISRO Inertial Systems Unit projektuan dhe boot-uan me sukses një kontrollor RISC-V 64-bit vendas për aplikime hapësinore (IRIS) bazuar në procesorin SHAKTI në shkurt 2025. Konfigurimi i çipit merr parasysh fuqinë përpunuese dhe nevojat funksionale të pajisjeve dhe sensorëve të përdorur në misionet e ISRO. Për të përmirësuar besueshmërinë, memoriet e brendshme tolerantë ndaj gabimeve u ndërfaqën me bërthamën SHAKTI.
- Bordet e zhvillimit RIES v3.0d janë të parat që përdorin procesorët DIR-V VEGA RISC-V. Ato përmbajnë VEGA ET1031, një CPU 32-bit RISC-V me tre porta UART seriale, katër porta Serial Peripheral Interface, dy megabajt flash memorje , 256 KB SRAM, dhe tre timer 32-bit. Operon në 100 MHz dhe rekomandohet për përdorim në pajisje të veshshme, lodra, pajisje të vogla IoT dhe sensorë nga C-DAC në tregun indian
Në zhvillim e sipër
[Redakto | Redakto nëpërmjet kodit]- ASTC zhvilloi një CPU RISC-V për qarkun e integruar. [99]
- Qendra për Zhvillimin e Informatikës së Avancuar (C-DAC) në Indi po zhvillon një procesor RISC-V me një bërthamë të vetme 32-bit të renditur, një procesor me një bërthamë 64-bit të renditur dhe tre procesorë RISC-V me një, dy dhe katër bërthama të renditura jashtë rendit sipas serisë VEGA Microprocessors . [100] [101] [102]
- Cobham Gaisler NOEL-V 64-bit. [103]
- Laboratori i Kompjuterave, Universiteti i Kembrixhit, në bashkëpunim me Projektin FreeBSD, e ka portuar atë sistem operativ në RISC-V 64-bit për ta përdorur si një platformë kërkimore harduer-softuer.
- Gjuha e IT-së njoftoi se po zhvillon tre procesorë të bazuar në RISC-V: bërthamën me performancë të lartë ET-Maxion, bërthamën me efikasitet energjetik ET-Minion dhe procesorin grafik ET-Graphics . [104]
- Gjuha e rreme ET-SoC-1, një superkompjuter me 200 TOPS "kilocore" në një çip, me 1088 bërthama të vogla 64-bitëshe ET-Minion me renditje të rregullt me njësi tensor/vektoriale dhe 4 bërthama të mëdha 64-bitëshe ET-Maxion me renditje të çrregullt [105]
- ETH Zurich dhe Universiteti i Bolonjës kanë zhvilluar në bashkëpunim procesorin me burim të hapur RISC-V PULPino [106] si pjesë e projektit Parallel Ultra-Low Power (PULP) për informatikë IoT me efikasitet energjetik. [107]
- Iniciativa Evropiane e Procesorëve (EPI), Rrjedha e Përshpejtuesve RISC-V. [108] [109]

Ilustrim i mostrës së parë funksionale të çipit RISC-V të EPI-t në vitin 2021. - Grupi i Inxhinierisë së Sistemeve Inteligjente të Rikonfigurueshme (RISE) i IIT-Madras po zhvillon gjashtë dizajne CPU-sh me burim të hapur RISC-V të serisë Shakti për gjashtë përdorime të dallueshme, nga një CPU e vogël 32-bit për Internetin e Gjërave (IoT) deri te CPU të mëdha 64-bit të dizajnuara për kompjuterë në shkallë depoje, siç janë fermat e serverëve bazuar në teknologjitë RapidIO dhe Hybrid Memory Cube . [110] Moushik 32-bit u nis me sukses nga RISE për aplikimin e kartave të kreditit, makinave elektronike të votimit (EVM), kamerave të mbikëqyrjes, bravave të kasafortave, sistemeve të personalizuara të menaxhimit të shëndetit. [111] [112]
- lowRISC është një projekt jofitimprurës për të zbatuar një sistem harduerik plotësisht me burim të hapur në një çip (SoC) bazuar në RISC-V ISA 64-bit.
- Nvidia planifikon të përdorë RISC-V për të zëvendësuar procesorin e tyre Falcon në kartat grafike GeForce . [113]
- Konsorciumi RV64X po punon në një sërë zgjerimesh grafike për RISC-V dhe ka njoftuar se po zhvillon një bërthamë RISC-V me burim të hapur me një njësi GPU. [114]
- Ventana zbuloi se po zhvillojnë teknologji IP dhe çiplete CPU RISC-V me performancë të lartë që synon aplikacionet e qendrave të të dhënave. [115] [116]
Burim i hapur
[Redakto | Redakto nëpërmjet kodit]- CPU-të e Berkeley implementohen në një gjuhë unike të dizajnit të harduerit, Chisel, dhe disa janë emëruar sipas lokomotivave të famshme:
- Rocket 64-bit..[117] Rocket mund të përshtatet për kompjuterë të vegjël, me energji të ulët, si pajisje personale. Emëruar sipas lokomotivës së famshme Stephenson’s Rocket.
- Berkeley Out of Order Machine (BOOM) 64-bit.[118] BOOM është një bërthamë RISC-V RV64GC e hapur, sintetizueshme dhe parametrizueshme, e shkruar në gjuhën e ndërtimit të harduerit Chisel. BOOM përdor shumë nga infrastruktura e krijuar për Rocket dhe mund të përdoret për kompjuterë personalë, superkompjuterë dhe kompjuterë të shkallës warehouse.
- Pesë dizajne Sodor 32-bit CPU nga Berkeley, të projektuar për projekte studentore.[119] Sodor është ishulli imagjinar ngaThe Railway Series.
- Institute of Computing Technology (ICT CAS) i Akademisë Kineze të Shkencave, në qershor 2020, nisi projektin e procesorit të performancës së lartë XiangShan RISC-V.[120][121] Në verën e 2021, u prezantua një prototip CPU i prodhuar në TSMC në procesin 28 nm me shpejtësi deri në 1.3 GHz në një konferencë RISC-V në Kinë.[122] Një prototip i përmirësuar do të prodhohej në SMIC në procesin 14 nm me shpejtësi deri në 2 GHz. [123] Procesori i dytë XiangShan, i quajtur Nanhu, i liruar në gusht 2022, mund të ketë tejkaluar ARM Cortex-A76 , duke e bërë Nanhu CPU-në më të fuqishëm open-source në botë në 2023.[124][125] Për 2022, ICT planifikonte një dizajn të ri XiangShan me zgjerimin RISC-V Vector për aplikacione si akselerimi AI, dhe në të ardhmen synonte të gjente një kompani tip “Red Hat” për komercializimin e bërthamave XiangShan..[124]
- PicoRV32 nga Clarie Wolf ,[126] një MCU 32-bit, implementim RV32IMC në Verilog.
- CORE-V familja e bërthamave open-source RISC-V menaxhohet nga OpenHW Foundation.
- SCR1 nga Syntacore,[127] një MCU 32-bit, implementim RV32IMC në Verilog.
- MIPT-MIPS[128] nga MIPT-ILab (laboratori për teknologji CPU me ndihmën e Intel), është simulator cikli-saktë para-silikon i CPU-ve RISC-V dhe MIPS. Mat performancën e programeve në CPU. Karakteristikat kryesore përfshijnë përputhshmëri me MARS system calls, simulim interaktiv me GDB, njësi të parashikimit të degëve me algoritme të ndryshme dhe bypass të cache-it dhe të dhënave ndërmjet-stadium. Implementim në C++..
- SERV nga Olof Kindgren, një bërthamë RV32I bit-serial, e vogël dhe e verifikuar në Verilog, është CPU-ja më e vogël RISC-V në botë. Integruar me LiteX dhe FuseSoC. Në FPGA[129] ishte 125 LUT dhe 164 flip-flops, duke funksionuar në 1.5 MIPS. Në ASIC 130 nm ishte 2.1 kGE [129]dhe një FPGA high-end mund të mbante 10,000 bërthama.[130]
- PULPino (Riscy and Zero-Riscy) nga ETH Zürich / Universiteti i Bolonjes.[131] Bërthamat në PULPino implementojnë ISA të thjeshtë RV32IMC për mikro-kontrollorë (Zero-Riscy) ose RV32IMFC me zgjerime DSP për përpunim të sinjalit të integruar.
- Western Digital, në dhjetor 2018 shpalli bërthamën RV32IMC SweRV EH1 me pipeline 9-stadium dhe superscalar 2-way në-order. Në dhjetor 2019, WD shpalli SweRV EH2 (2 hardware threads, pipeline 9-stadium) dhe SweRV EL2 (pipeline 4-stadium).[132] WD Planifikon përdorimin e SweRV në kontrollet flash dhe SSD, dhe e publikoi open-source në janar 2019.[133][134][135]
- NEORV32 nga Stephan Nolting,[136] një MCU shumë-konfigurues 32-bit RV32[I/E]MACUX me mbështetje debugger në-chip, implementuar në VHDL të pavarur nga platforma. Projekti përfshin SoC si mikro-kontrollor me module si UART, timers, SPI, TWI, TRNG dhe memorje të integruar.
- Hazard3 nga Luke Wren, procesor RV32I me pipeline tre-stadium.[137] Dy bërthama Hazard3 implementohen në mikro-kontrollorin .RP2350 .[138]
Pajisjet e përdoruesit fundor
[Redakto | Redakto nëpërmjet kodit]
Në vitin 2022, ClockworkPi nxori në shitje dy komplete kompjuterike për hobistët, terminalin DevTerm dhe kompjuterin portativ uConsole . Të dy kompletet ofruan një modul RISC-V me një bërthamë 64-bit si opsion, duke përdorur RV64IMAFDCVU bazuar në SoC Allwinner D1. [139] [140]
DeepComputing, një kompani harduerësh me seli në Hong Kong, njoftoi publikimin më 13 Prill 2023 i "laptopit të parë në botë me procesor RISC-V"; fletorja, e quajtur "DC-ROMA", iu dorëzua klientëve të saj të parë në gusht 2023 [141] dhe erdhi i parainstaluar me sistemin operativ kinez openKylin Linux. [142] Modeli bazë i pajisjes, i disponueshëm nga Alibaba, ishte ende i shtrenjtë, afërsisht 1500 dollarë amerikanë [143] duke pasur parasysh se fuqizohej nga CPU relativisht i ngadaltë [144] Alibaba (DAMO) "XuanTie C910".
Një përmirësim në qershor 2024 dyfishoi numrin e bërthamave në 8 bërthama dhe rriti shpejtësinë e orës në 2 GHz (nga 1.5 GHz), ndërkohë që çmimi u ul në 1,000 dollarë amerikanë. [145] Procesori i përdorur ishte një SpacemiT SoC K1. [146] [147] Një bashkëpunim me Canonical [148] nënkuptonte që ROMA II erdhi i parainstaluar me shpërndarjen kryesore ndërkombëtare të Linux-it, Ubuntu . [149]
Në vitin 2024, DeepComputing njoftoi një bashkëpunim me Framework Computer për të prodhuar një motherboard për Framework Laptop 13 të tyre. [150] [151] Më 4 shkurt 2025, laptopi ishte gati për t'u dërguar; ai ishte kryesisht i destinuar për zhvilluesit. Ai përmban një procesor StarFive JH7110 me 4 bërthama. [152] [153]
Në vitin 2025, DeepComputing njoftoi DC-ROMA AI PC, një motherboard të dytë për Framework Laptop 13. Është i bazuar në SoC EIC7702X të ESWIN që ka aftësi AI deri në 50 TOPS kur aktivizohet NPU (Njësia e Përpunimit Neural). [154] [155]
Softueri
[Redakto | Redakto nëpërmjet kodit]Përveç që ka një numër të madh dizajnesh harduerësh të CPU-së, RISC-V mbështetet gjithashtu nga zinxhirët e mjeteve, sistemet operative (p.sh. Linux ), middleware-in. , dhe softuer dizajni
Mjetet e padisponueshme për softuer RISC-V përfshijnë: një toolchain të GNU Compiler Collection (GCC) (përfshirë edhe debugger-in GDB), një toolchain LLVM, simulatorin OVPsim (dhe bibliotekën e Modeleve të Shpejta të Procesorit RISC-V), simulatorin Spike, si dhe një simulator në QEMU (për RV32GC/RV64GC). Një port i OpenJDK është tashmë i integruar në depo-n kryesore të OpenJDK
Ekziston mbështetje për sistemin operativ për kernelin Linux, FreeBSD, NetBSD dhe OpenBSD . Porti paraprak i FreeBSD në arkitekturën RISC-V u përditësua në shkurt 2016 dhe u dërgua në FreeBSD 11.0.
Si një nga vetëm shtatë arkitekturat e CPU-së (p.sh. ARM ose x86 ), Debian Linux ka mbështetur zyrtarisht RISC-V që nga Debian Trixie, i cili u publikua në gusht 2025. [156] Ekzistojnë gjithashtu portet e shpërndarjeve Linux Fedora, [157] dhe openSUSE, [158] dhe një port i Haiku, [159] (vetëm versionet 64-bit, jo versionet 32-bit). Në qershor 2024, kompania e Hong Kongut DeepComputing njoftoi disponueshmërinë komerciale të laptopit të parë RISC-V në botë që përdor sistemin operativ popullor Linux Ubuntu në formën e tij standarde ("jashtë kutisë"). [160] [161]
Në gusht 2025, Ubuntu vendosi të hiqte mbështetjen për “profilet” më të vjetra të RISC-V, si p.sh. RV64GC ose RVA20. Kjo do të thotë se CPU-të ekzistuese RISC-V nuk mbështeteshin më nga versioni 25.10 i Ubuntu (tetor 2025), ndërsa versionet më të vjetra të Ubuntu vazhdonin të mbështesnin profilet dhe CPU-të e vjetra.
Në shtator 2025, nuk kishte ende procesorë të vërtetë në treg për profilin “RVA23” që Ubuntu kërkonte rishtazi; vetëm disa dizajne ekzistonin, si XuanTie C930 nga DAMO Academy dhe SiFive P870. Uebsajti i lajmeve kompjuterike Heise Online shpjegoi ndërprerjen e papritur me faktin se procesorët që përdornin teknologjinë e vjetër RV64GC ishin zakonisht shumë të dobët në testet standarde dhe për këtë arsye kishin përdorim të kufizuar për një sistem operativ modern të përdoruesit fundor. Ndërkohë, dizajni më i ri RVA23 pritej të çonte në procesorë shumë më të shpejtë, me frekuenca orësh që tejkalonin 2 GHz.[162]
Ekziston një port i Das U-Boot . [163] UEFI Spec v2.7 ka përcaktuar lidhjen RISC-V dhe një port TianoCore është bërë nga inxhinierët e HPE [164] dhe pritet të transmetohet në rrjedhën e sipërme. Një zhytje e thellë e nisjes RISC-V u bë si pjesë e openSUSE Hackweek 20. [165] Ekziston një port i mikrobërthamës seL4 [166] [167] [168] me saktësi funksionale, integritet dhe veti të rrjedhës së informacionit të verifikuara zyrtarisht. [169] Hex Five publikoi Secure IoT Stack të parë për RISC-V me mbështetje FreeRTOS . [170] Gjithashtu u portua xv6, një riimplementim modern i Unix të Edicionit të Gjashtë në ANSI C i përdorur për qëllime pedagogjike në MIT . Pharos RTOS është portuar në RISC-V 64-bit [171] (duke përfshirë mbrojtjen e kohës dhe të memories). Shihni gjithashtu Krahasimin e sistemeve operative në kohë reale .
Ekziston një simulator për të ekzekutuar një sistem RISC-V Linux në një shfletues interneti duke përdorur JavaScript . [172] [173] [174]
QEMU mbështet ekzekutimin e sistemeve RISC-V 32- dhe 64-bit (p.sh. Linux) duke përdorur përkthimin binar. Ai ofron shumë pajisje të emuluara ose të virtualizuara, si seriale, paralele, USB, rrjet, ruajtje, orë në kohë reale, watchdog dhe audio. Po ashtu, QEMU mund të ekzekutojë skedarë binarë të Linux për RISC-V duke përkthyer thirrjet sistemore në bërthamën pritëse. Ai gjithashtu mbështet emulim me shumë bërthama (SMP). [175]
Simulatori CREATOR është i lëvizshëm dhe lejon përdoruesit të mësojnë gjuhë të ndryshme të montimit për procesorë të ndryshëm. Ai përfshin, për shembull, implementime të instruksioneve RISC-V dhe MIPS32.[176] [177] [178] [179] [180]
Disa gjuhë janë aplikuar për të krijuar bërthama IP RISC-V, duke përfshirë një gjuhë përshkrimi hardueri të bazuar në Scala, Chisel, [181] e cila mund t'i reduktojë dizajnet në Verilog për përdorim në pajisje, dhe gjuhën e përshkrimit të procesorit CodAL e cila është përdorur për të përshkruar bërthamat e procesorit RISC-V dhe për të gjeneruar HDK-të përkatëse ( RTL, testbench dhe UVM ) dhe SDK-të. [182] Grupi i Punës për Pajtueshmërinë Ndërkombëtare RISC-V ka një depo GitHub për RV32IMC. [183]
Simulatori edukativ i zgjerueshëm WepSIM zbaton një nëngrup të mikroprogramuar të udhëzimeve RISC-V (RV32I+M) dhe lejon ekzekutimin e nënprogrameve si në nivelin e asamblesë ashtu edhe në atë të mikroprogramimit. [184] [185]
Mjetet e zhvillimit
[Redakto | Redakto nëpërmjet kodit]- IAR Systems publikoi versionin e parë të IAR Embedded Workbench për RISC-V, i cili në fillim mbështeste vetëm bërthamat dhe zgjerimet RISC-V 32-bit RV32. Versionet e ardhshme pritet të ofrojnë mbështetje për 64-bit, për setin bazë më të vogël RV32E, si dhe certifikim të sigurisë funksionale dhe zgjidhje sigurie. Lauterbach gjithashtu shtoi mbështetje për RISC-V në debugger-ët e tyre TRACE32 JTAG. [186] [187] Lauterbach njoftoi gjithashtu [188] mbështetje për gjurmën e procesorit të bazuar në SiFives RISC-V NEXUS .
- SEGGER publikoi një produkt të ri të quajtur "J-Trace PRO RISC-V", shtoi mbështetje për bërthamat RISC-V në familjen e tyre të sondave të debugging J-Link, [189] mjedisin e tyre të integruar të zhvillimit Embedded Studio, [190] dhe RTOS embOS dhe softuerin e tyre të integruar. [191]
- UltraSOC Arkivuar 22 shtator 2020 tek Wayback Machine , tani pjesë e Siemens, [192] propozoi një sistem standard gjurmimi dhe dhuroi një zbatim.
Shih edhe
[Redakto | Redakto nëpërmjet kodit]- Gjuha e asamblesë RISC-V
- Listat e udhëzimeve RISC-V
- Lista e pajisjeve kompjuterike me burim të hapur
- Kronologjia e mikroprocesorit
Lexime të mëtejshme
[Redakto | Redakto nëpërmjet kodit]Lidhje të jashtme
[Redakto | Redakto nëpërmjet kodit]Referime
[Redakto | Redakto nëpërmjet kodit]- 1 2 3 4 5 6 7 8 9 10 "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në në anglisht). Marrë më 12 shtator 2025.
{{cite web}}: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ↑ "About RISC-V International". RISC-V International (në në anglisht). Marrë më 2025-09-12.
{{cite web}}: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ↑ Connatser, Matthew. "World's first RISC-V laptop with Ubuntu preloaded touts AI smarts and octa-core chip". The Register (në në anglisht). Marrë më 2024-08-19.
{{cite web}}: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ↑ "RISC-V FAQ" (në në anglisht). Marrë më 12 shtator 2025.
{{cite web}}: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ↑ "RISC-V FAQ" (në në anglisht). Marrë më 12 shtator 2025.
{{cite web}}: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ↑ Aleksandar Kostovic (2021-07-12). "Libre-SOC Releases First Non-IBM OpenPOWER Chip in Decade". Tom's Hardware (në anglisht). Marrë më 2024-08-20.
- ↑ Nguyen, Phuc-Vinh; Tran, Thi-Thu-Trang; Diep, Phuoc-Loc; Le, Duc-Hung (shtator 2018). "A Low-Power ASIC Implementation of Multi-Core OpenSPARC T1 Processor on 90nm CMOS Process". 2018 IEEE 12th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSoC) (në në anglisht). IEEE. fq. 95–100. doi:10.1109/MCSoC2018.2018.00027. ISBN 978-1-5386-6689-0.
{{cite book}}: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ↑ Asanović, Krste. "Instruction Sets Should be Free" (PDF). U.C. Berkeley Technical Reports (në anglisht). Regents of the University of California. Arkivuar nga origjinali (PDF) më 23 prill 2019. Marrë më 15 nëntor 2016.
- ↑ Asanović, Krste. "The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA" (PDF). U.C. Berkeley Technical Reports (në në anglisht). Regents of the University of California. Marrë më 13 maj 2011.
{{cite web}}: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 3 4 Asanović, Krste. "Instruction Sets Should be Free" (PDF). U.C. Berkeley Technical Reports. Regents of the University of California. Marrë më 15 nëntor 2016.
{{cite web}}: Mungon ose është bosh parametri|language=(Ndihmë!) - ↑ Celio, Christopher; Love, Eric. "riscv-sodor: educational microarchitectures for risc-v isa". GitHub (në anglisht). Regents of the University of California. Marrë më 2019-10-25.
- ↑ Celio, Christopher. "CS 152 Laboratory Exercise 3" (PDF). UC Berkeley (në anglisht). Regents of the University of California. Arkivuar nga origjinali (PDF) më 12 shkurt 2015. Marrë më 12 shkurt 2015.
{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ↑ "About RISC-V International". RISC-V International (në anglisht). Marrë më 2025-09-12.
- ↑ "About RISC-V International". RISC-V International (në anglisht). Marrë më 2025-09-12.
- ↑ "About RISC-V International". RISC-V International (në anglisht). Marrë më 2025-09-12.
- ↑ Brussee, Rogier. "A Complete 16-bit RVC". Google Groups (në anglisht). RISC-V Foundation. Marrë më 18 korrik 2019.
- ↑ Brussee, Rogier. "Proposal: Xcondensed, [a] ... Compact ... 16 bit standalone G-ISA". RISC-V ISA Mail Server (në anglisht). Google Groups. Marrë më 10 nëntor 2016.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Brussee, Rogier. "Proposal: Xcondensed, [a] ... Compact ... 16 bit standalone G-ISA". RISC-V ISA Mail Server (në anglisht). Google Groups. Marrë më 10 nëntor 2016.
- ↑ Brussee, Rogier. "A Complete 16-bit RVC". Google Groups (në anglisht). RISC-V Foundation. Marrë më 18 korrik 2019.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 "Instruction Summary for a "P" ISA Proposal". Google Groups (në anglisht). ANDES Technologies. Marrë më 13 janar 2020.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. "RISC-V Vector Extension Proposal" (PDF). RISC-V (në anglisht). Regents of the University of California. Arkivuar nga origjinali (PDF) më 15 mars 2016. Marrë më 14 mars 2016.
{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ↑ "Release Vector Extension 1.0, frozen for public review · riscv/Riscv-v-spec". GitHub (në anglisht).
- ↑ Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. "RISC-V Vector Extension Proposal" (PDF). RISC-V (në anglisht). Regents of the University of California. Arkivuar nga origjinali (PDF) më 15 mars 2016. Marrë më 14 mars 2016.
{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ↑ Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. "RISC-V Vector Extension Proposal" (PDF). RISC-V (në anglisht). Regents of the University of California. Arkivuar nga origjinali (PDF) më 15 mars 2016. Marrë më 14 mars 2016.
{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - 1 2 Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. "RISC-V Vector Extension Proposal" (PDF). RISC-V (në anglisht). Regents of the University of California. Arkivuar nga origjinali (PDF) më 15 mars 2016. Marrë më 14 mars 2016.
{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. "RISC-V Vector Extension Proposal" (PDF). RISC-V (në anglisht). Regents of the University of California. Arkivuar nga origjinali (PDF) më 15 mars 2016. Marrë më 14 mars 2016.
{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Bradbury, Alex; Wallentowitz, Stefan. "RISC-V Run Control Debug". Google Docs (në anglisht). RISC-V Foundation. Marrë më 20 janar 2017.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 Bradbury, Alex; Wallentowitz, Stefan. "RISC-V Run Control Debug". Google Docs (në anglisht). RISC-V Foundation. Marrë më 20 janar 2017.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 "Alibaba launches server-grade RISC-V CPU design" (në anglisht). Arkivuar nga origjinali më 16 mars 2025. Marrë më 2025-05-19.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 "RISC-V-compatible Imagination GPU licensed to chip designers" (në anglisht). Arkivuar nga origjinali më 24 janar 2025. Marrë më 2025-06-16.
- ↑ "Examining China's Grand Strategy For RISC-V". jamestown.org (në anglishte amerikane). Marrë më 2024-08-13.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 "Alibaba launches server-grade RISC-V CPU design" (në anglisht). Arkivuar nga origjinali më 11 prill 2025. Marrë më 2025-05-19.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 3 "RISC-V International Members". RISC-V International (në anglisht). Marrë më 2021-01-22.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "CH32V003". WCH-IC (në anglisht). Marrë më 2023-07-10.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Celio, Christopher; Love, Eric. "riscv-sodor: educational microarchitectures for risc-v isa". GitHub (në anglisht). Regents of the University of California. Marrë më 2019-10-25.
- ↑ Brown, Eric (2021-12-08). "Two 64-bit RISC-V cores debut: StarFive Dubhe and CAS Nanhu". LinuxGizmos.com (në anglisht). Marrë më 2024-08-13.
- ↑ "SCR1 is a high-quality open-source RISC-V MCU core in Verilog". GitHub (në anglisht). Syntacore. Marrë më 2020-01-13.
- ↑ "SCR1 is a high-quality open-source RISC-V MCU core in Verilog". GitHub (në anglisht). Syntacore. Marrë më 2020-01-13.
- ↑ Kindgren, Olof (29 dhjetor 2022). "SERV: 32-bit is the New 8-bit" (Video, 2:38). YouTube (në anglisht). RISC-V Foundation. Marrë më 25 shtator 2023.
- ↑ Traber, Andreas; etj. "PULP: Parallel Ultra Low Power" (në anglisht). ETH Zurich, University of Bologna. Marrë më 5 gusht 2016.
- ↑ "CH32V003". WCH-IC (në anglisht). Marrë më 2023-07-10.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Celio, Christopher; Love, Eric. "riscv-sodor: educational microarchitectures for risc-v isa". GitHub (në anglisht). Regents of the University of California. Marrë më 2019-10-25.
- ↑ Brown, Eric (2021-12-08). "Two 64-bit RISC-V cores debut: StarFive Dubhe and CAS Nanhu". LinuxGizmos.com (në anglisht). Marrë më 2024-08-13.
- ↑ "SCR1 is a high-quality open-source RISC-V MCU core in Verilog". GitHub (në anglisht). Syntacore. Marrë më 2020-01-13.
- ↑ Kindgren, Olof (29 dhjetor 2022). "SERV: 32-bit is the New 8-bit" (Video, 2:38). YouTube (në anglisht). RISC-V Foundation. Marrë më 25 shtator 2023.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Celio, Christopher; Love, Eric. "riscv-sodor: educational microarchitectures for risc-v isa". GitHub (në anglisht). Regents of the University of California. Marrë më 2019-10-25.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- 1 2 Brown, Eric (2021-12-08). "Two 64-bit RISC-V cores debut: StarFive Dubhe and CAS Nanhu". LinuxGizmos.com (në anglisht). Marrë më 2024-08-13.
- ↑ "Examining China's Grand Strategy For RISC-V". jamestown.org (në anglishte amerikane). Marrë më 2024-08-13.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "SCR1 is a high-quality open-source RISC-V MCU core in Verilog". GitHub (në anglisht). Syntacore. Marrë më 2020-01-13.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- 1 2 Kindgren, Olof (29 dhjetor 2022). "SERV: 32-bit is the New 8-bit" (Video, 2:38). YouTube (në anglisht). RISC-V Foundation. Marrë më 25 shtator 2023.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Traber, Andreas; etj. "PULP: Parallel Ultra Low Power" (në anglisht). ETH Zurich, University of Bologna. Marrë më 5 gusht 2016.
- ↑ Celio, Christopher; Love, Eric. "riscv-sodor: educational microarchitectures for risc-v isa". GitHub (në anglisht). Regents of the University of California. Marrë më 2019-10-25.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Celio, Christopher; Love, Eric. "riscv-sodor: educational microarchitectures for risc-v isa". GitHub (në anglisht). Regents of the University of California. Marrë më 2019-10-25.
- ↑ Brown, Eric (2021-12-08). "Two 64-bit RISC-V cores debut: StarFive Dubhe and CAS Nanhu". LinuxGizmos.com (në anglisht). Marrë më 2024-08-13.
- ↑ "SCR1 is a high-quality open-source RISC-V MCU core in Verilog". GitHub (në anglisht). Syntacore. Marrë më 2020-01-13.
- ↑ Alderson, Alex (2022-10-27). "Clockwork uConsole: Fantasy console arrives in multiple variants with optional 4G". Notebookcheck (në anglisht). Arkivuar nga origjinali më 2025-04-30. Marrë më 2025-07-24.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ Connatser, Matthew. "World's first RISC-V laptop with Ubuntu preloaded touts AI smarts and octa-core chip". The Register (në anglisht). Marrë më 2024-08-19.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION (në anglisht). 24 shtator 2020. Marrë më 2020-09-25.
- ↑ "Pharos". SourceForge (në anglisht). Marrë më 1 pri 2020.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "Chisel: Constructing Hardware in a Scala Embedded Language". UC Berkeley (në anglisht). Regents of the University of California. Marrë më 12 shkurt 2015.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- ↑ "RISC-V FAQ" (në anglisht). Marrë më 12 shtator 2025.
- Gabime CS1: Mungon parametri i gjuhës
- Artikuj që përmbajnë deklarata potencialisht të vjetëruara from 2023
- Të gjithë artikujt që përmbajnë deklarata potencialisht të vjetëruara
- Artikuj që përmbajnë deklarata potencialisht të vjetëruara from dhjetor 2021
- Artikuj që përmbajnë deklarata potencialisht të vjetëruara from 2019
