Computer Science/컴퓨터 구조

[컴퓨터 구조] RISC-V Addressing Mode Summary

바보1 2022. 10. 22. 00:26

 

 


앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2022.10.01 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Type of Instruction (명령어의 타입)

2022.10.21 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Decision Instruciton

2022.10.21 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Procedure call, jal, jalr (프로시저 콜을 위한 명령어들)

2022.10.21 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] for Wide Immediate Operands : lui


RISC-V는 addressing mode를 위한 여러 가지 형태를 가지고 있습니다.

 

이를 총 네 개로 분류해 놓았는데, 알아보겠습니다.

 

mode

  • Immediate addressing : 즉시 주소 지정 방식
    • instruction 그 자체에 상수 operand가 들어가 있는 경우
    • 메모리에 접근할 필요가 없기 때문에 매우 빠르다.
  • Register addressing : 레지스터 주소 지정 방식
    • operand가 register인 경우
    • register에 저장된 값을 operand로 가져온다.
    • 혹은 register에 저장되어 있는 주소를 가져온다.
    • 따라서 주소에 해당하는 메모리에 가서 operand를 가져와야 한다.
  • Base or displacement addressing : base 기반 주소 지정 방식
    • base address는 register에 있고, 거기에 immediate를 더해서 주소를 지정하는 방식
    • register addressing과 흡사하지만, 여기서 register에 저장한 것은 base address이므로, imme를 더해서 operand를 가져온다.
  • PC-relative addressing : PC-relative 주소 지정 방식
    • PC를 기준으로 상수 immediate를 더해서 주소를 지정하는 방식
    • branch address를 위한 mode라고 이해하면 될 것 같다.

 

add는 두 개의 register을 가지고 연산을 하기 때문에 register addressing

addi는 상수를 가지고 연산을 하기 때문에 immediate addressing

lw는 base + offset을 통하여 메모리에서 값을 가져오므로 base addressing

sw도 base + offset을 통하여 메모리에서 값을 가져오므로 base addressing

jal, jalr, beq 등등은 pc를 기준으로 명령어 주소를 지정하므로 pc-relative addressing