ISA와 어셈블리
RISC-V 명령어에서는 레지스터를 지정하는 필드(rd, rs1, rs2)가 각각 5비트이다. 그 이유로 올바른 것은?
- A레지스터의 폭이 5비트이기 때문
- B하나의 명령어에서 최대 5개의 레지스터를 사용할 수 있기 때문
- C정수 레지스터가 32개 있어 2의 5제곱=32가지로 지정할 수 있기 때문
정답과 해설 보기
정답: C. 정수 레지스터가 32개 있어 2의 5제곱=32가지로 지정할 수 있기 때문
R 형식 명령어는 상위부터 funct7(7비트)·rs2(5)·rs1(5)·funct3(3)·rd(5)·opcode(7)의 합계 32비트로 구성됩니다. 레지스터가 32개이므로 번호는 5비트로 나타낼 수 있습니다. 레지스터를 64개로 늘리면 필드가 각각 6비트씩 필요하여 세 개에서 3비트를 더 쓰게 되므로, 즉치값이나 명령어 종류에 쓸 수 있는 비트가 줄어듭니다. 레지스터의 개수는 명령어의 형태와 연결되어 있는 것입니다.