Venus
Awesome RISC-V

Venus

RISC-V 생태계

Venus는 UC Berkeley에서 만든 RV32IM 어셈블리용 교육용 시뮬레이터이며, CS 61C에서 사용됩니다.

개요

Venus는 웹 브라우저에서 실행되는 RISC-V 시뮬레이터입니다. 시뮬레이터는 프로세서를 모방하는 프로그램이므로 RISC-V 하드웨어를 소유하지 않고도 기계어 코드를 실행할 수 있습니다. Venus는 RV32IM용으로 작성된 어셈블리 코드를 읽습니다. 어셈블리 코드는 기계 명령어를 읽을 수 있는 텍스트 형태로 나타낸 것입니다. RV32I는 기본 32비트 RISC-V 명령어 집합이며, M 확장은 곱셈과 나눗셈을 추가합니다.

에디터와 시뮬레이터는 하나의 페이지를 공유합니다. 프로그램은 환경에 무언가를 요청하는 RISC-V 명령어인 ecall을 통해 서비스를 요청합니다. Venus는 값을 출력하고 추가 메모리를 할당하기 위한 ecall을 처리합니다.

기록

Keyhan Vakil은 2017년 UC Berkeley에서 Venus를 시작했습니다. 이 프로젝트는 JavaScript로 컴파일할 수 있는 프로그래밍 언어인 Kotlin으로 작성되었습니다. 바로 이 컴파일 덕분에 시뮬레이터는 아무것도 설치하지 않고 브라우저 안에서 실행될 수 있습니다.

UC Berkeley는 기계 구조에 관한 강의인 CS 61C에 Venus를 채택했으며, 학생들은 이 강의에서 첫 RISC-V 프로그램을 작성합니다. 이 강의는 나중에 venus.cs61c.org에서 자체 포크를 유지했습니다. 포크란 원본과 별도로 개발되는 프로젝트의 복사본입니다. 또 다른 포크인 Venus164는 Berkeley의 컴파일러 강의에 있는 ChocoPy 컴파일러 프로젝트를 위한 기능을 추가합니다.

사용되는 곳

Venus는 어셈블리 입문 과정에 적합합니다. 학생은 페이지를 열고 프로그램을 붙여넣은 뒤 실행합니다. 명령어 집합은 RV32IM으로 유지되며, 첫 수업이 레지스터, 메모리, 제어 흐름에 집중할 수 있게 하는 작은 집합입니다.

소스

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