앞의 글을 읽으시면 이해에 도움이 됩니다.
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를 위한 여러 가지 형태를 가지고 있습니다.
이를 총 네 개로 분류해 놓았는데, 알아보겠습니다.
- 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
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Multiplication (0) | 2022.10.22 |
---|---|
[컴퓨터 구조] Add, Sub, OverFlow (0) | 2022.10.22 |
[컴퓨터 구조] Procedure Call (2) | 2022.10.22 |
[컴퓨터 구조] for Wide Immediate Operands : lui (0) | 2022.10.21 |
[컴퓨터 구조] Procedure call, jal, jalr (프로시저 콜을 위한 명령어들) (2) | 2022.10.21 |