Spike

armedHeistKino·2023년 11월 7일

개요

Spike 깃허브 레포지토리
Spike는 RISC-V ISA 시뮬레이터이다.
RISC-V 아키텍처 구조를 가지는 컴퓨터에서 프로그램을 실행하는 것 처럼 시뮬레이션해볼 수 있는 툴이다.

  • RISC-V는 오픈소스 RISC
  • ISA Instruction Set Architecture

사용

  • c로 작성된 프로그램을 risc-v ELF로 컴파일
  • 컴파일된 파일을 spike option pkg binary로 시뮬레이션을 실행할 수 있다.
    - ./build/spike ./pk/pk ./your_directory와 같이 디렉토리를 명확하게 밝혀 실행하였음.

추가

  • option에 옵션을 지정할 수 있음.
    • d는 인터렉티브형 디버깅으로, 커맨드로 사용자가 원하는 데로 사이클을 진행할 수 있다. 레지스터와 메모리에 저장된 값을 보거나, 사이클을 쭉 넘길 수 있음.
    • l는 로그를 남기는 옵션이라고 하는데, 생성되는 파일도 없고 >을 사용해도 프로그램에서 출력한 스트링만 남음. 이건 뭔지 모르겠음

디버깅

: until: while은 모두 반복적으로 사이클을 진행한다. 그러나 전자는 조건을 만족하지 않을때 반복하고 후자는 조건을 만족할때 반복한다.

  • 특정 행을 수행하는 때가지 사이클을 넘기고 싶다면 다음 행을 입력한다. pc는 프로그램 카운터 program counter, 0은 코어 번호를 의미한다.
    : until pc 0 0xXXXXXXXXXXXXXXXX
  • r N은 특정 횟수만큼 사이클을 넘긴다. 1 이면 인스트럭션 하나를 실행한다. 2면 인스트럭션 두 줄을 실행한다. N 이면 인스트럭션 N개를 실행한다.
  • reg 0은 코어 0번의 레지스터를 본다.
profile
학부생이 아는척하기

0개의 댓글