Пређи на садржај

RISC-V

С Википедије, слободне енциклопедије
RISC-V
Битови32, 64, 128
Уведен6. август 2014. (пре 10 година) (2014-08-06)[1]
ДизајнУниверзитет Калифорније у Берклију
Типрачунар са смањеним скупом инструкција
Page size4 KiB
Регистри
Општа намена
  • 16
  • 32
Floating point
  • 32
(опционо; ширина зависи од доступних проширења)

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

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

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

Историја

[уреди | уреди извор]

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

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

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

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

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

ISA база и проширења

[уреди | уреди извор]

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

Стандардна проширења

[уреди | уреди извор]

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

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

Заједно са екстензијом супервизора, S, RVGC скуп инструкција, који укључује један од основних RV скупова инструкција, G колекцију екстензија (што укључује „I“, што значи да база није уграђена) и C екстензију, дефинише све инструкције потребне за погодну подршку оперативног система опште намене.[2]

ISA база и проширења
Назив Опис Верзија Статус[А] Број инструкција
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 Шаблон:Figure space8 (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)[29]

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[30]
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
  1. ^ Очекује се да ће замрзнути делови добити свој коначни сет карактеристика и да ће добити само појашњења пре него што буду ратификовани.
32-битни RISC-V формати инструкција
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]
  • 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.
Модуларни скуп инструкција варијанте RV32IMAC. Ово је 32-битни процесор са Base Integer ISA (RV32I) и ISA екстензијама за целобројно множење и дељење (RV32M), атомске инструкције (RV32A) и компресоване инструкције (RV32C).

Да би се именовале комбинације функција које се могу имплементирати, дефинисана је номенклатура која их специфицира у Поглављу 27 важеће ратификоване Непривилеговане ISA Спецификације. Прво се специфицира база скупа инструкција, кодирање за RISC-V, ширина регистра у биту и варијанта; нпр. RV64I или RV32E. Затим следе слова која одређују имплементиране екстензије, редоследом наведеним у горњој табели. Свако слово може бити праћено главним опционо праћеним "p" и мањим бројем опције. Тако се RV64IMAFD може записати као RV64I1p0M1p0A1p0F1p0D1p0 или једноставније као RV64I1M1A1F1D1. Доње црте се могу користити између екстензија ради читљивости, на пример RV32I2_M2_A2.

Референце

[уреди | уреди извор]
  1. ^ Asanović, Krste; Patterson, David A. (6. 8. 2014). Instruction Sets Should Be Free: The Case For RISC-V (PDF). EECS Department, University of California, Berkeley. UCB/EECS-2014-146. 
  2. ^ а б в „The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 20191213” (PDF). 
  3. ^ „About RISC-V”. RISC-V International. 
  4. ^ „RISC-V To Move HQ to Switzerland Amid Trade War Concerns”. EE Times Europe. 28. 11. 2019. 
  5. ^ „Frequently Asked Questions (FAQ) – RISC-V International” (на језику: енглески). Приступљено 2024-08-20. 
  6. ^ „Linux 5.17 Adds Support For "The First Usable, Low-Cost RISC-V Platform" | Michael Larabel, Phoronix – RISC-V International” (на језику: енглески). 2022. Приступљено 2024-08-20. 
  7. ^ „RISC-V - Debian Wiki”. wiki.debian.org. Приступљено 2024-08-13. 
  8. ^ „riscv64 is now an official architecture”. lists.debian.org. Приступљено 2024-08-13. 
  9. ^ „RISC-V - Debian Wiki”. wiki.debian.org. Приступљено 2024-08-13. 
  10. ^ „Project:RISC-V - Gentoo wiki”. wiki.gentoo.org. Приступљено 2025-02-11. 
  11. ^ Hanlon, Neil (2025-02-19). „RISC-V and Fedora: All Aboard!”. Fedora Magazine (на језику: енглески). Приступљено 2025-02-21. 
  12. ^ „Architectures - Fedora Project Wiki”. fedoraproject.org. Приступљено 2025-02-21. 
  13. ^ „openSUSE Project Wiki”. opensuse.org. Приступљено 2025-02-25. 
  14. ^ Anton Shilov (2024-03-20). „Alibaba claims it will launch a server-grade RISC-V processor this year”. Tom's Hardware (на језику: енглески). Приступљено 2024-08-19. 
  15. ^ Connatser, Matthew (2024-08-13). „Akeana debuts RISC-V CPU designs on $100M budget, longs for an Arm wrestle”. The Register. Приступљено 2024-08-19. 
  16. ^ Connatser, Matthew. „World's first RISC-V laptop with Ubuntu preloaded touts AI smarts and octa-core chip”. The Register. Приступљено 2024-08-19. 
  17. ^ „CPU Architectures — The Linux Kernel documentation”. docs.kernel.org. Приступљено 2024-08-20. 
  18. ^ Aleksandar Kostovic (2021-07-12). „Libre-SOC Releases First Non-IBM OpenPOWER Chip in Decade”. Tom's Hardware (на језику: енглески). Приступљено 2024-08-20. 
  19. ^ Nguyen, Phuc-Vinh; Tran, Thi-Thu-Trang; Diep, Phuoc-Loc; Le, Duc-Hung (септембар 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). IEEE. стр. 95—100. ISBN 978-1-5386-6689-0. doi:10.1109/MCSoC2018.2018.00027. 
  20. ^ Asanović, Krste. „Instruction Sets Should be Free” (PDF). U.C. Berkeley Technical Reports. Regents of the University of California. Приступљено 15. 11. 2016. 
  21. ^ Patterson, David A.; Ditzel, David R. (1980-10-01). „The case for the reduced instruction set computer”. SIGARCH Comput. Archit. News. 8 (6): 25—33. ISSN 0163-5964. doi:10.1145/641914.641917. 
  22. ^ „Tech Reports | EECS at UC Berkeley”. www2.eecs.berkeley.edu. Приступљено 2025-05-16. 
  23. ^ „SOAR Architecture | EECS at UC Berkeley”. www2.eecs.berkeley.edu. Приступљено 2025-05-16. 
  24. ^ „Contributors - RISC-V Foundation”. RISC-V Foundation (на језику: енглески). Архивирано из оригинала 07. 09. 2018. г. Приступљено 2025-05-16. 
  25. ^ Asanović, Krste. „The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA” (PDF). U.C. Berkeley Technical Reports. Regents of the University of California. Приступљено 13. 5. 2011. 
  26. ^ Hruska, Joel (21. 8. 2014). „RISC rides again: New RISC-V architecture hopes to battle ARM and x86 by being totally open source”. ExtremeTech. 
  27. ^ „About RISC-V International”. RISC-V International (на језику: енглески). Приступљено 2025-05-26. 
  28. ^ „The RISC-V Instruction Set Manual Volume II: Privileged Architecture Document Version 20211203” (PDF). 
  29. ^ „B Standard Extension for Bit Manipulation Instructions”. RISC-V International. април 2024. 
  30. ^ „Vector Extension”. RISC-V International. новембар 2021.