RISC-V의 Register

MySprtlty·2023년 2월 15일
0

RISC-V

목록 보기
1/4
post-thumbnail

🏷️RISC-V의 Register

📌보존 레지스터와 비보존 레지스터

  • procedure 호출 후 값이 변하지 않는 것(보존)이 보장되는 레지스터보장되지 않은 레지스터

    preservedNot preserved
    Saved Register: x8-x9,x18-x27 Temporary Register x5-x7, x28-x31
    Stack Pointer(sp): x2Argument/Result Register: x10-x17
    Frame Pointer(fp): x8
    Return Address(ra): x1
    sp위 stack itemsp 아래 stack item
  • RISC-V의 레지스터는 32개로 고정이다. 참고로 현대 CPU의 레지스터의 갯수는 대부분 32개이다.

  • 🖇️cf. 명령어에서 레지스터를 표현하는 bit수는 5bit면 충분하다는 이야기도 된다.

  • RISC-V 구조에서 레지스터 크기는 64bit다.

📌다음은 RISC-V 레지스터의 사용 관례다.

NameUsage호출 시 값 보존 보장 유무
x0상수 0을 값으로 갖는다.n.a.(not applicable)
x1(ra)Return address(link register)yes
x2(sp)Stack pointeryes
x3(gp)Global pointeryes
x4(tp)Thread pointeryes
x5-x7Termporary Registerno
x8-x9Saved (값의 보존을 보장해주는 레지스터)
x8은 fp로 쓰이기도 한다.
(단, procedure내에서 sp가 변하는 경우)
yes
x10-x17Arguments/Resultsno
x18-x27Savedyes
x28-x31Temporary Registerno
profile
2Co 4:7

0개의 댓글