- 이번 글의 목적
- RISC-V ISA가 어떻게 구성되는지 깊이 이해
- 가변적 확장 메커니즘과 구조적 철학 정리
- 기존 ISA(x86, ARM 등)와 비교하여 특징 분석
- 예시 코드로 실제 명령어 동작 감각 제공
1. RISC-V ISA 개요: 모듈성의 극치
RISC-V ISA의 설계 철학은 다음의 한 문장으로 요약할 수 있다. “필요한 것만 가져와라, 나머지는 선택 사항이다.” 기존 ISA는 하나의 거대한 사양 안에 억지로 모든 기능이 들어간 반면, RISC-V는 기본 구성만 두고 나머지를 선택하도록 해 아키텍처 설계의 자유도를 극대화했다.
2. RISC-V의 ISA 구성 방식
RISC-V ISA는 크게 다음 구조로 이루어진다.
2.1 기본 ISA(Base ISA)
하드웨어가 반드시 구현해야 하는 최소 명령어 집합.
| Base ISA | 설명 |
| RV32I | 32-bit 정수 기반 기본 ISA |
| RV64I | 64-bit 정수 기반 기본 ISA |
| RV128I | 128-bit 정수 기반 기본 ISA(아직 상용 제품 없음) |
여기서 ‘I’는 Integer Instructions 를 의미한다.
Base ISA는 아래의 모든 명령을 포함한다:
- 산술/논리(ALU)
- 메모리 로드/스토어
- 제어 흐름(branch/jump)
- 시스템 명령(환경 호출 등)
2.2 표준 확장(Standard Extension)
기능 확장 모듈. CPU 제조사는 필요하면 포함하고, 필요 없다면 제거한다.
대표 확장 목록:
| 확장 | 설명 |
| M | 정수 곱셈/나눗셈(Multiply/Divide) |
| A | 원자적 연산(Atomic Instructions) |
| F | 단정밀도 Floating Point |
| D | 배정밀도 Floating Point |
| C | 16-bit 압축 명령어(Compressed) |
| V | 벡터 연산(Vector Extension) |
| B | 비트 조작(Bit-Manipulation) |
| Zicsr | CSR(Control & Status Register) |
| Zifencei | 명령어 페치 Fence |
예시:
- 고성능 서버 CPU: RV64IMAFDCV(정수+부동소수점+압축+벡터)
- 초저전력 센서 MCU: RV32IC(정수+압축)
2.3 커스텀 확장(Custom Extension)
기업 또는 연구기관이 직접 ISA를 확장하는 영역.
예시:
- 보안 암호화 전용 명령어(Crypto Extension)
- 영상/신호처리 전용 DSP 확장
- AI 가속용 행렬곱(matmul) 명령어
이 확장성을 통해 RISC-V는 ARM이나 x86이 제공하지 못하는 혁신성을 보여준다.
3. RISC-V의 명령어 형식(instruction format)
RISC-V는 명령어 형식도 RISC 철학을 따르며 매우 단순하다. 모든 명령어는 고정 길이 32비트(C 확장 제외)이며, 명령 종류에 따라 다음의 6가지 타입을 사용한다. HW는 opcode는 funct3를 통해 각 명령어를 구분한다.

(1) R-Type (Register-Register 연산)
| opcode | rd | funct3 | rs1 | rs2 | funct7 |
예: add x1, x2, x3
(2) I-Type (즉치(immediate), 로드, 시스템 명령)
| opcode | rd | funct3 | rs1 | imm[11:0] |
예: addi x5, x5, 4
예: lw x2, 8(x1)
(3) S-Type (Store 명령)
| opcode | imm[4:0] | funct3 | rs1 | rs2 | imm[11:5] |
예: sw x3, 12(x1)
(4) B-Type (조건 분기 branch)
| opcode | imm[11] | imm[4:1] | funct3 | rs1 | rs2 | imm[10:5] | imm[12] |
예: beq x1, x2, label
(5) U-Type (상위 즉치 immediate)
| opcode | rd | imm[31:12] |
예: lui x5, 0x12345000
(6) J-Type (jump)
| opcode | rd | imm[20] | imm[10:1] | imm[11] | imm[19:12] |
예: jal x1, offset
도표: RISC-V 6개 명령어 형식 요약
| 타입 | 역할 | 예시 |
| R | 레지스터 연산 | add |
| I | 즉치·load | addi, lw |
| S | store | sw |
| B | 조건 분기 | beq |
| U | 상위 즉치 | lui |
| J | 점프 | jal |
4. RISC-V의 모듈형 ISA가 가져온 구조적 장점
✔ 단순한 하드웨어 구현
ISA 자체가 단순하므로,
- 파이프라인 설계 쉬움
- 디코더 회로 간소화
- 고속 클럭 구현 유리
이는 특히 임베디드 칩 설계에서 매우 큰 장점이다.
✔ 소형·대형 모두 커버
- 가벼운 MCU용 RV32IC
- 고성능 서버용 RV64IMAFDCV
같은 ISA 철학 아래 설계된다.
✔ 확장 ISAs를 통한 기능 특화
산업별 특수 목적 칩을 만드는데 최적화되어 있다.
| 산업 | 필요한 확장 |
| AI 가속기 | V, Zmmul 등 |
| 통신/네트워크 | B, A |
| 금융 보안 | 암호화 확장 Xcrypto |
| IoT 센서 | C, Zicsr |
✔ 생태계 다양성(architecture heterogeneity) 생존
모두가 동일한 ARM 코어를 쓰는 세상과 달리,
RISC-V는 다양한 회사가 각자 자신만의 CPU를 설계할 수 있게 한다.
5. 예시 코드로 보는 RISC-V ISA 작동 방식
아래는 두 수를 더한 뒤 메모리에 저장하는 간단한 코드다.
✔ C 코드
int add_and_store(int a, int b, int* out) {
int c = a + b;
*out = c;
return c;
}
✔ RISC-V Assembly
add_and_store:
add x10, x10, x11 # x10 = a + b
sw x10, 0(x12) # *out = x10
ret
분석
| 동작 | 명령어 | ISA 타입 |
| 정수 덧셈 | add | R-type |
| 메모리 저장 | sw | S-type |
| 반환 | ret (jalr 기반) | I-type |
단 두 줄의 명령어만으로 주요 연산이 정리된다. 이런 단순성이 바로 RISC-V의 강점이다.
6. 정리 — RISC-V ISA의 본질은 ‘선택의 자유’
이번 글에서 살펴본 핵심은 다음과 같다.
✔ 단순한 Base ISA
RISC 철학을 그대로 계승하며 하드웨어 구현이 쉽다.
✔ 확장 가능한 모듈 시스템
M/A/F/D/V/C 등 확장을 선택적으로 조합할 수 있다.
✔ 커스텀 확장을 통한 차별화
기관/기업이 원하는 기능을 ISA에 직접 추가 가능하다.
✔ 다양한 명령어 타입
단 6개 명령어 형식으로 모든 기능을 표현할 수 있다.
'RISC-V > RISC-V 개념' 카테고리의 다른 글
| [RISC-V] RV32I 레지스터 (0) | 2026.03.05 |
|---|---|
| [RISC-V] 5편 RISC-V의 미래: 기회와 도전 — ISA 생태계 전환기의 기술·시장 분석 (1) | 2026.03.04 |
| [RISC-V] 4편 RISC-V 메모리 모델·캐시 계층·MMU·가상 메모리·TLB (0) | 2026.03.03 |
| [RISC-V] 3편 RISC-V 명령어의 실제 실행 과정: 파이프라인·예외·트랩·CSR (0) | 2026.02.10 |
| [RISC-V] 1편 RISC-V란 무엇인가: 오픈 ISA의 태동과 산업적 의미 (1) | 2026.02.02 |