RISC-V (вимовляється "risk-five") — відкрита архітектура інструкцій центрального процесора, що базується на принципах RISC. Проект розпочався у 2010 році в Університеті Каліфорнії (Берклі), до роботи долучилися також багато ентузіастів поза межами університету.
Розробка | Університет Каліфорнії (Берклі) |
---|---|
Розрядність | 32, 64 або 128 біт |
Поява | 2010 |
Версія | 2.2 |
Тип архітектури | RISC |
Інструкції | змінної довжини |
Реалізація переходів | Compare-and-branch |
Розширення | M, A, F, D, Q, C, P |
Відкритий дизайн | так |
Регістри | |
16, 32 (включно з одним регістром, що завжди повертає нуль при читанні) | |
Рухома кома | 32 (опційно) |
Станом на червень 2020 року, архітектура команд для програм користувача має версію 2.2, а привілейована частина (для використання ядром операційної системи) — версію 1.11.
Історія
Термін «RISC» вперше з'явився на початку 1980-х років. До цього існували деякі[] ідеї, що процесори з простою архітектурою можуть бути ефективними, але дизайн таких процесорів детально описаний не був.
Набір процесорних інструкцій з'явився у 1990-му році для першого видання книги Computer Architecture: A Quantitative Approach і позиціонувався в основному для навчальних цілей. Автором розробки був ; у академічних колах і серед ентузіастів було здійснено кілька реалізацій DLX для FPGA. Комерційного застосування DLX не мав.
Набір команд процесорів ARM версії 2 і старіших є суспільним надбанням, і все ще[] підтримується набором компіляторів gcc. Існує три описи апаратної частини цієї архітектури, але реалізація їх «у кремнії» відсутня.
Існує також дизайн (також базується на DLX), що є продуктом з відкритим кодом і також підтримується gcc. Втім, кількість комерційних реалізацій OpenRISC також незначна.
Особливості дизайну
Набори регістрів
RISC-V має 32 (у вбудовуваному варіанті — 16) регістрів для зберігання цілих чисел. Якщо підтримується розширення з рухомою комою, процесор має підтримувати 32 регістри з рухомою комою. Інструкції процесора (за винятком тих, що здійснюють доступ до пам'яті) оперують лише з регістрами.
Перший цілочисельний регістр завжди повертає нуль при читанні, а запис у нього не має ефекту. Решта регістрів — загального призначення. Використання нульового регістра дає змогу реалізувати компактніший набір інструкцій (наприклад, інструкцію RY := RX
можна замінити еквівалентною RY := RX + R0
).
Існують також регістри керування і статусу. Програми користувача мають доступ лише до тих з них, що пов'язані з вимірюванням швидкодії і керуванням обчислень з рухомою комою.
Інструкції, що зчитують або записують багато регістрів за раз, відсутні: проектанти дійшли до висновку, що такі команди не є необхідними, складні у реалізації і занадто повільні.
Виклик підпрограм, переходи і розгалуження
Для виклику підпрограм архітектура RISC-V має інструкцію jal
(англ. jump and link); адреса для повернення з підпрограми записується у наданий регістр. Такий підхід є швидшим, ніж запис адреси у пам'ять (стек). Зміщення у інструкції jal
кодується 20-бітним знаковим числом, яке множиться на 2 і додається до поточного лічильника команд. Якщо обчислене таким чином значення не є кратним 4, процесор може згенерувати виняток.
Непрямий перехід здійснюється інструкцією jalr
(англ. jump and link-register), яка схожа на jal
, але адреса обчислюється шляхом додавання значення базового регістра і 12-бітного зміщення (jal
додає 20-бітне зміщення до PC).
Бітовий формат інструкції jalr
схожий на інструкції завантаження і зберігання (load-store) з відносною адресацією. Інструкція lui
(англ. load upper immediate) заповнює верхні 20 біт регістра заданим значенням (нижні 12 біт обнулюються), а auipc
(англ. add upper immediate to PC) — додатково складає результат з поточним значенням PC. Ці інструкції корисні при генерації [en].
Для реалізації безумовних переходів RISC-V також використовує інструкції jal
і jalr
. У такому випадку нульовий регістр виступає як регістр зв'язку, і таким чином адреса повернення не зберігається.
Реалізації
Станом на вересень 2018 року існують наступні реалізації процесорної архітектури RISC-V:
- Ядра N25 і NX25 від компанії [en]
- Чотириядерна 64-бітна система на кристалі U54 від компанії SiFive
- 32-розрядний контролер GAP8 від фірми GreenWaves Technologies
Програмне забезпечення
Для роботи над дизайном процесора існує компілятор зі спеціалізованої мови програмування [en], результатом виконання якого є код на Verilog.
Для розробки прикладного і системного програмного забезпечення існує порт GNU Compiler Collection (GCC) для RISC-V, включно зі налагоджувачем GDB. Також цю архітектуру підтримує LLVM, симулятор , симулятор Spike, і симулятор у QEMU.
На RISC-V портовано ядро ОС Linux, а також операційні системи FreeBSD і NetBSD. Чорновий варіант порту FreeBSD було здійснено у лютому 2016, стабілізація відбулася у FreeBSD 11.0.
Джерела
- . riscv.org. Regents of the University of California. Архів оригіналу за 13 червня 2018. Процитовано 25 серпня 2014.
- Waterman, Andrew; (3 December 2021). The RISC-V Instruction Set Manual Volume II: Privileged Architecture Document Version 20211203 (PDF). RISC-V International. Процитовано 5 November 2021.
- Patterson, David A; Ditzel, David R. (October 1980). The Case for the Reduced Instruction Set Computer. ACM SIGARCH Computer Architecture News. 8 (6): 25. doi:10.1145/641914.641917.
- . OpenCores. OpenCores. Архів оригіналу за 10 жовтня 2014. Процитовано 26 серпня 2014.
- . OpenCores. OpenCores. Архів оригіналу за 6 липня 2014. Процитовано 26 серпня 2014.
- Waterman, Andrew; Asanović, Krste. . University of California, Berkeley. EECS-2016-118. Архів оригіналу за 28 серпня 2017. Процитовано 25 травня 2017.
- . UC Berkeley. Regents of the University of California. Архів оригіналу за 5 квітня 2015. Процитовано 12 лютого 2015.
- . Архів оригіналу за 25 серпня 2018. Процитовано 24 серпня 2018.
- . Архів оригіналу за 4 квітня 2018. Процитовано 24 серпня 2018.
Помилка цитування: Тег <ref>
з назвою "isacompressed", визначений у <references>
, не використовується в попередньому тексті.
Помилка цитування: Тег <ref>
з назвою "rocketsspeed", визначений у <references>
, не використовується в попередньому тексті.
Помилка цитування: Тег <ref>
з назвою "riscvc", визначений у <references>
, не використовується в попередньому тексті.
Помилка цитування: Тег <ref>
з назвою "shakti", визначений у <references>
, не використовується в попередньому тексті.
Помилка цитування: Тег <ref>
з назвою "iitmadrasospp", визначений у <references>
, не використовується в попередньому тексті.
<ref>
з назвою "lowrisc", визначений у <references>
, не використовується в попередньому тексті.
Це незавершена стаття про апаратне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття потребує додаткових для поліпшення її . (жовтень 2019) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
RISC V vimovlyayetsya risk five vidkrita arhitektura instrukcij centralnogo procesora sho bazuyetsya na principah RISC Proekt rozpochavsya u 2010 roci v Universiteti Kaliforniyi Berkli do roboti doluchilisya takozh bagato entuziastiv poza mezhami universitetu RISC VRozrobka Universitet Kaliforniyi Berkli Rozryadnist 32 64 abo 128 bitPoyava 2010Versiya 2 2Tip arhitekturi RISCInstrukciyi zminnoyi dovzhiniRealizaciya perehodiv Compare and branchRozshirennya M A F D Q C PVidkritij dizajn takRegistri16 32 vklyuchno z odnim registrom sho zavzhdi povertaye nul pri chitanni Ruhoma koma 32 opcijno Stanom na cherven 2020 roku arhitektura komand dlya program koristuvacha maye versiyu 2 2 a privilejovana chastina dlya vikoristannya yadrom operacijnoyi sistemi versiyu 1 11 IstoriyaPrototip procesora arhitekturi RISC V sichen 2013 roku Termin RISC vpershe z yavivsya na pochatku 1980 h rokiv Do cogo isnuvali deyaki yaki ideyi sho procesori z prostoyu arhitekturoyu mozhut buti efektivnimi ale dizajn takih procesoriv detalno opisanij ne buv Nabir procesornih instrukcij z yavivsya u 1990 mu roci dlya pershogo vidannya knigi Computer Architecture A Quantitative Approach i pozicionuvavsya v osnovnomu dlya navchalnih cilej Avtorom rozrobki buv u akademichnih kolah i sered entuziastiv bulo zdijsneno kilka realizacij DLX dlya FPGA Komercijnogo zastosuvannya DLX ne mav Nabir komand procesoriv ARM versiyi 2 i starishih ye suspilnim nadbannyam i vse she koli pidtrimuyetsya naborom kompilyatoriv gcc Isnuye tri opisi aparatnoyi chastini ciyeyi arhitekturi ale realizaciya yih u kremniyi vidsutnya Isnuye takozh dizajn takozh bazuyetsya na DLX sho ye produktom z vidkritim kodom i takozh pidtrimuyetsya gcc Vtim kilkist komercijnih realizacij OpenRISC takozh neznachna Osoblivosti dizajnuNabori registriv RISC V maye 32 u vbudovuvanomu varianti 16 registriv dlya zberigannya cilih chisel Yaksho pidtrimuyetsya rozshirennya z ruhomoyu komoyu procesor maye pidtrimuvati 32 registri z ruhomoyu komoyu Instrukciyi procesora za vinyatkom tih sho zdijsnyuyut dostup do pam yati operuyut lishe z registrami Pershij cilochiselnij registr zavzhdi povertaye nul pri chitanni a zapis u nogo ne maye efektu Reshta registriv zagalnogo priznachennya Vikoristannya nulovogo registra daye zmogu realizuvati kompaktnishij nabir instrukcij napriklad instrukciyu RY RX mozhna zaminiti ekvivalentnoyu RY RX R0 Isnuyut takozh registri keruvannya i statusu Programi koristuvacha mayut dostup lishe do tih z nih sho pov yazani z vimiryuvannyam shvidkodiyi i keruvannyam obchislen z ruhomoyu komoyu Instrukciyi sho zchituyut abo zapisuyut bagato registriv za raz vidsutni proektanti dijshli do visnovku sho taki komandi ne ye neobhidnimi skladni u realizaciyi i zanadto povilni Viklik pidprogram perehodi i rozgaluzhennya Dlya vikliku pidprogram arhitektura RISC V maye instrukciyu jal angl jump and link adresa dlya povernennya z pidprogrami zapisuyetsya u nadanij registr Takij pidhid ye shvidshim nizh zapis adresi u pam yat stek Zmishennya u instrukciyi jal koduyetsya 20 bitnim znakovim chislom yake mnozhitsya na 2 i dodayetsya do potochnogo lichilnika komand Yaksho obchislene takim chinom znachennya ne ye kratnim 4 procesor mozhe zgeneruvati vinyatok Nepryamij perehid zdijsnyuyetsya instrukciyeyu jalr angl jump and link register yaka shozha na jal ale adresa obchislyuyetsya shlyahom dodavannya znachennya bazovogo registra i 12 bitnogo zmishennya jal dodaye 20 bitne zmishennya do PC Bitovij format instrukciyi jalr shozhij na instrukciyi zavantazhennya i zberigannya load store z vidnosnoyu adresaciyeyu Instrukciya lui angl load upper immediate zapovnyuye verhni 20 bit registra zadanim znachennyam nizhni 12 bit obnulyuyutsya a auipc angl add upper immediate to PC dodatkovo skladaye rezultat z potochnim znachennyam PC Ci instrukciyi korisni pri generaciyi en Dlya realizaciyi bezumovnih perehodiv RISC V takozh vikoristovuye instrukciyi jal i jalr U takomu vipadku nulovij registr vistupaye yak registr zv yazku i takim chinom adresa povernennya ne zberigayetsya RealizaciyiStanom na veresen 2018 roku isnuyut nastupni realizaciyi procesornoyi arhitekturi RISC V Yadra N25 i NX25 vid kompaniyi en Chotiriyaderna 64 bitna sistema na kristali U54 vid kompaniyi SiFive 32 rozryadnij kontroler GAP8 vid firmi GreenWaves TechnologiesProgramne zabezpechennyaDlya roboti nad dizajnom procesora isnuye kompilyator zi specializovanoyi movi programuvannya en rezultatom vikonannya yakogo ye kod na Verilog Dlya rozrobki prikladnogo i sistemnogo programnogo zabezpechennya isnuye port GNU Compiler Collection GCC dlya RISC V vklyuchno zi nalagodzhuvachem GDB Takozh cyu arhitekturu pidtrimuye LLVM simulyator simulyator Spike i simulyator u QEMU Na RISC V portovano yadro OS Linux a takozh operacijni sistemi FreeBSD i NetBSD Chornovij variant portu FreeBSD bulo zdijsneno u lyutomu 2016 stabilizaciya vidbulasya u FreeBSD 11 0 Dzherela riscv org Regents of the University of California Arhiv originalu za 13 chervnya 2018 Procitovano 25 serpnya 2014 Waterman Andrew 3 December 2021 The RISC V Instruction Set Manual Volume II Privileged Architecture Document Version 20211203 PDF RISC V International Procitovano 5 November 2021 Patterson David A Ditzel David R October 1980 The Case for the Reduced Instruction Set Computer ACM SIGARCH Computer Architecture News 8 6 25 doi 10 1145 641914 641917 OpenCores OpenCores Arhiv originalu za 10 zhovtnya 2014 Procitovano 26 serpnya 2014 OpenCores OpenCores Arhiv originalu za 6 lipnya 2014 Procitovano 26 serpnya 2014 Waterman Andrew Asanovic Krste University of California Berkeley EECS 2016 118 Arhiv originalu za 28 serpnya 2017 Procitovano 25 travnya 2017 UC Berkeley Regents of the University of California Arhiv originalu za 5 kvitnya 2015 Procitovano 12 lyutogo 2015 Arhiv originalu za 25 serpnya 2018 Procitovano 24 serpnya 2018 Arhiv originalu za 4 kvitnya 2018 Procitovano 24 serpnya 2018 Pomilka cituvannya Teg lt ref gt z nazvoyu isacompressed viznachenij u lt references gt ne vikoristovuyetsya v poperednomu teksti Pomilka cituvannya Teg lt ref gt z nazvoyu rocketsspeed viznachenij u lt references gt ne vikoristovuyetsya v poperednomu teksti Pomilka cituvannya Teg lt ref gt z nazvoyu riscvc viznachenij u lt references gt ne vikoristovuyetsya v poperednomu teksti Pomilka cituvannya Teg lt ref gt z nazvoyu shakti viznachenij u lt references gt ne vikoristovuyetsya v poperednomu teksti Pomilka cituvannya Teg lt ref gt z nazvoyu iitmadrasospp viznachenij u lt references gt ne vikoristovuyetsya v poperednomu teksti Pomilka cituvannya Teg lt ref gt z nazvoyu lowrisc viznachenij u lt references gt ne vikoristovuyetsya v poperednomu teksti Ce nezavershena stattya pro aparatne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno zhovten 2019