- Representing Instructions

- 인스트럭션들은 결국 Assembly 어로 변환되고 그것이 다시 binary 로 바뀌어서 binary 로 저장이 됨. 이를 머신 코드라고 함.
- RISC-V 에서는, 4바이트 즉 워드 단위로 인스트럭션이 저장됨. 그러니까 1 인스트럭션 = 1 워드 = 4바이트!
- 가능하면 Regularity 를 지키는 것이 좋음. 즉 명령어마다 형식이 크게 바뀌지 않는 인스트럭션일수록 좋음.
- Hexadecimal

한 명령어가 32비트라고 했음. 즉 4비트 * 8 개. 이때 16진수를 사용하면, 4비트를 하나의 비트로 표현이 가능함. 따라서 원래 이진수로 표현햇을 때는 32자리로 표현해야 했던 것을, 16진수 즉 2^4 으로 표현함으로써, 8자리로 표현이 가능해짐!
- RISC-V R-format Instruction

- RISC-V 에는 R format 이 있고, S format 이 잇고 다른 포맷도 있음.
- R format 에 해당하는 것으로 가장 대표적인 것이 add, sub, mulitply 같은 기본 연산!
- 이 인스트럭션이 어떤 타입이냐는 opcode 를 보고 결정! 단, 같은 타입이어도 숫자 다를 수 있음.
- 그리고 function 7 과 3의 추가적인 opcode 를 보고 어떤 연산을 하는 것인지 알 수 있다.
- rd, r1, rs 는 각각 destination, source 1, 2 이고 레지스터 번호 0~31 번을 가리킬 수 잇게 5비트씩 할당되어 있다.
- RISC - V I-format Instructions

- I format 의 대표적인 예는, lw!! lw x9 offset(x22) 에서 offset 부분이 바로 immediate 부분이다.
- 이때 immediate 는 12 비트이기 때문에, 레지스터에 저장된 메모리의 주소값인 32비트와 더하려면 signed extension 이 있어야 함!!