RISC-V (изговара се „risk-five“ ) је архитектура скупа инструкција отвореног стандарда заснована на утврђеним принципима рачунара са редукованим скупом инструкција (RISC). Пројекат је започет 2010. на Универзитету Калифорније у Берклију. RISC-V се нуди под бесплатним лиценцама отвореног кода. Документи који дефинишу архитектуру скупа инструкција RISC-V (ISA) нуде се под лиценцом Creative Commons или BSD лиценцом.

Главна подршка за RISC-V је додата у кернел Линукса 5.17 2022., заједно са његовим алатима. У јулу 2023. RISC-V, у својој 64-битној варијанти под називом riscv64, је укључен као званична архитектура Линукс дистрибуције Debian, у својој нестабилној верзији. Циљ овог пројекта је био „да Debian буде спреман за инсталацију и рад на системима који имплементирају варијанту RISC-V ISA“. Gentoo такође подржава RISC-V. Fedora подржава RISC-V као алтернативну архитектуру од 2025. Пројекат openSUSE је додао подршку за RISC-V 2018.

Неки чланови RISC-V International-а, као што су Alibaba's Damo Academy и Raspberry Pi, нуде или су најавили комерцијалне системе на чипу (SoC) који укључују једно или више RISC-V компатибилних CPU језгара.

Историја Термин RISC датира из 1980. Пре тога, постојало је извесно знање (видети Џона Кока) да једноставнији рачунари могу бити ефикасни, али принципи дизајна нису били широко описани. Једноставни, ефикасни рачунари су одувек били од академског интереса, што је резултирало RISC скупом инструкција DLX за прво издање књиге „Рачунарска архитектура: квантитативни приступ“ 1990., чији је коаутор био Дејвид Патерсон, а касније је учествовао у настанку RISC-V. DLX је био намењен за образовну употребу; академици и хобисти су га имплементирали користећи програмабилне низове капија (FPGA), али никада није био заиста намењен за комерцијалну примену. ARM процесори, верзије 2 и раније, имали су скуп инструкција јавног власништва и још увек их подржава GNU Compiler Collection, популарни компајлер слободног софтвера. За овај ISA постоје три језгра отвореног кода, али никада нису произведена. Језгра OpenRISC, OpenPOWER и OpenSPARC/LEON нуде бројни произвођачи и имају подршку за главни GCC и Linux језгро.

Крсте Асановић са Универзитета Калифорније у Берклију имао је истраживачки захтев за рачунарски систем отвореног кода, а 2010. је одлучио да развије и објави један у „кратком, тромесечном пројекту током лета“ са неколико својих постдипломаца. План је био да се помогне и академским и индустријским корисницима. Дејвид Патерсон са Берклија се придружио сарадњи јер је био творац Беркли RISC-а, а RISC-V је истоимена пета генерација његове дуге серије кооперативних истраживачких пројеката заснованих на RISC-у на Универзитету Калифорније у Берклију (RISC-I и RISC-II објављени 1981. од стране Патерсона, који назива SOAR архитектуру из 1984. „RISC-III“ и SPUR архитектуру из 1988. „RISC-IV“). У овој фази, студенти су обезбедили почетни софтвер, симулације и дизајн процесора.

Аутори RISC-V и њихова институција су првобитно набавили ISA документе и неколико дизајна процесора под BSD лиценцама, које омогућавају да изведени радови — као што су дизајни RISC-V чипова — буду или отворени и слободни, или затворени и власнички. Сама ISA спецификација (тј. кодирање скупа инструкција) објављена је 2011. као отворени код са свим задржаним правима.

Стварни технички извештај је касније стављен под лиценцу Creative Commons како би се омогућило унапређење од стране спољних сарадника преко RISC-V фондације, а касније и RISC-V International.

Потпуна историја RISC-V објављена је на веб-сајту RISC-V International.

ISA база и проширења RISC-V има модуларни дизајн, који се састоји од алтернативних основних делова, са додатним опционим проширењима. ISA база и њена проширења развијени су заједничким напорима индустрије, истраживачке заједнице и образовних институција. База специфицира инструкције (и њихово кодирање), ток управљања, регистре (и њихове величине), меморију и адресирање, логичку (тј. целобројну) манипулацију и помоћне компоненте. Сама база може да имплементира поједностављени рачунар опште намене, са пуном софтверском подршком, укључујући компајлер опште намене.

Стандардна проширења Стандардна проширења су специфицирана да раде са свим стандардним базама и једни са другима без сукоба.

Многи RISC-V рачунари могу имплементирати проширење компресованих инструкција како би смањили потрошњу енергије, величину кода и употребу меморије. Такође постоје будући планови за подршку хипервизорима и виртуелизацији.

Заједно са екстензијом супервизора, S, RVGC скуп инструкција, који укључује један од основних RV скупова инструкција, G колекцију екстензија (што укључује „I“, што значи да база није уграђена) и C екстензију, дефинише све инструкције потребне за погодну подршку оперативног система опште намене. +ISA база и проширењаНазивОписВерзијаСтатусБрој инструкцијаBaseWeak memory ordering2.0 Base integer instruction set, 32-bit2.1 40Base integer instruction set (embedded), 32-bit, 16 registers2.0 40Base integer instruction set, 64-bit2.1 52Base integer instruction set (embedded), 64-bit2.0 52Base integer instruction set, 128-bit1.7 64ExtensionStandard extension for integer multiplication and division2.0 8 () 13 ()Standard extension for atomic instructions2.1 11 () 22 ()Standard extension for single-precision floating-point2.2 26 () 30 ()Standard extension for double-precision floating-point2.2 26 () 32 ()Control and status register (CSR) instructions2.0 6Instruction-fetch fence2.0 1Shorthand for the IMAFD_Zicsr_Zifencei base and extensions Standard extension for quad-precision floating-point2.2 28 () 32 ()Standard extension for decimal floating-point0.0 Standard extension for compressed instructions2.0 40Standard extension for bit manipulation1.0 29 () 41 ()Standard extension for dynamically translated languages0.0 Standard extension for transactional memory0.0 Standard extension for packed-SIMD instructions0.9.10 Standard extension for vector operations1.0 187Standard extension for scalar cryptography1.0.1 49Standard extension for hypervisor1.0 15Standard extension for supervisor-level instructions1.12 4Misaligned atomics0.1 Pause hint2.0 Non-temporal locality hints0.3 Additional floating-point instructions1.0 Half-precision floating-point1.0 Minimal half-precision floating-point1.0 Single-precision floating-point in integer register1.0 Double-precision floating-point in integer register1.0 Half-precision floating-point in integer register1.0 Minimal half-precision floating-point in integer register1.0 Multiplication subset of the M extension1.0 Total store ordering1.0

+32-битни RISC-V формати инструкцијаFormatBit313029282726252423222120191817161514131211109876543210Storeimm[11:5]rs2rs1funct3imm[4:0]opcodeBranchimm[10:5]imm[4:1]Register/registerfunct7rdImmediateimm[11:0]Upper immediateimm[31:12]Jumpimm[10:1]imm[19:12] opcode (7 bits): Partially specifies one of the 6 types of instruction formats. ''funct7 (7 bits) and funct3 (3 bits): These two fields extend the opcode field to specify the operation to be performed. rs1 (5 bits) and rs2 (5 bits): Specify, by index, the first and second operand registers respectively (i.e., source registers). rd'' (5 bits): Specifies, by index, the destination register to which the computation result will be directed. мини|402x402п|Модуларни скуп инструкција варијанте RV32IMAC. Ово је 32-битни процесор са Base Integer ISA (RV32I) и ISA екстензијама за целобројно множење и дељење (RV32M), атомске инструкције (RV32A) и компресоване инструкције (RV32C). Да би се именовале комбинације функција које се могу имплементирати, дефинисана је номенклатура која их специфицира у Поглављу 27 важеће ратификоване Непривилеговане ISA Спецификације. Прво се специфицира база скупа инструкција, кодирање за RISC-V, ширина регистра у биту и варијанта; нпр. или . Затим следе слова која одређују имплементиране екстензије, редоследом наведеним у горњој табели. Свако слово може бити праћено главним опционо праћеним "p" и мањим бројем опције. Тако се може записати као или једноставније као . Доње црте се могу користити између екстензија ради читљивости, на пример .

Референце

Категорија:Микроконтролери