Venus
Awesome RISC-V

Venus

Екосистема RISC-V

Venus — це навчальний симулятор асемблера RV32IM від UC Berkeley, що використовується в CS 61C.

Огляд

Venus — це симулятор RISC-V, що працює у веббраузері. Симулятор — це програма, яка імітує процесор, тож можна запускати машинний код, не маючи обладнання RISC-V. Venus читає код мовою асемблера, написаний для RV32IM. Код мовою асемблера — це читабельна текстова форма машинних інструкцій. RV32I — це базовий 32-бітний набір інструкцій RISC-V, а розширення M додає множення й ділення.

Редактор і симулятор використовують одну сторінку. Програми запитують послуги через ecall — інструкцію RISC-V, яка звертається до середовища із запитом. Venus обробляє ecall для виведення значень і для виділення додаткової пам'яті.

Історія

Кейхан Вакіл започаткував Venus у 2017 році в UC Berkeley. Проєкт написано на Kotlin — мові програмування, яку можна компілювати в JavaScript. Саме ця компіляція дає змогу симулятору працювати в браузері без необхідності щось встановлювати.

UC Berkeley прийняв Venus для курсу CS 61C, присвяченого структурам машин, де студенти пишуть свої перші програми на RISC-V. Пізніше курс підтримував власний форк на venus.cs61c.org. Форк — це копія проєкту, яка розробляється окремо від оригіналу. Інший форк, Venus164, додає функції для проєкту компілятора ChocoPy в курсі компіляторів Berkeley.

Де використовується

Venus підходить для першого курсу з асемблера. Студент відкриває сторінку, вставляє програму та запускає її. Її набір інструкцій залишається на рівні RV32IM — невеликого набору, який дозволяє зосередити перші заняття на регістрах, пам'яті та потоці керування.

Джерела

  1. kvakil/venus README
  2. CS 61C Lab 3, UC Berkeley
  3. Venus164 fork