명령어 집합 구조와 CISC vs RISC 요약
1. 명령어 집합 (Instruction Set)
(1) 개념
- CPU가 이해할 수 있는 명령어들의 모음.
- CPU마다 실행할 수 있는 명령어가 다름.
- 예: 인텔(Intel) CPU vs 애플(Apple) CPU → 서로 다른 명령어 집합을 사용.
- 같은 소스 코드를 컴파일하더라도 CPU마다 생성되는 기계어(어셈블리어) 코드가 다름.

(2) 명령어 집합 구조 (ISA, Instruction Set Architecture)
- 명령어 집합에 따라 CPU의 설계 방식이 결정됨.
- 명령어 집합 구조(ISA)는 하드웨어와 소프트웨어 간의 약속.

🔹 ISA(Instruction Set Architecture)란?
✅ CPU가 실행할 수 있는 "명령어의 규칙"
✅ 프로그램이 CPU에게 "이렇게 계산해!"라고 명령하는 방법
✅ CPU의 언어 같은 개념! (사람이 영어, 한국어를 쓰듯이)
🔹 ISA가 중요한 이유
🛠 컴퓨터가 프로그램을 실행하려면 CPU가 이해할 수 있는 명령어로 변환해야 함.
🚀 같은 ISA를 사용하는 CPU라면 같은 프로그램을 실행할 수 있음!
🖥 PC, 모바일, 서버 등 다양한 환경에서 CPU 선택에 따라 ISA가 달라짐.
🔹 대표적인 ISA 종류
| ISA 종류 | 특징 | 어디에 쓰일까? |
|---|
| x86 / x86-64 (CISC) | 복잡한 명령어 지원, 성능 높음 | PC, 서버 (Intel, AMD CPU) |
| ARM (RISC) | 명령어 단순, 저전력 | 스마트폰, 태블릿, Mac (Apple M 시리즈) |
| RISC-V | 오픈소스, 커스텀 가능 | IoT, 연구용 CPU, 서버 |
2. CISC (Complex Instruction Set Computer)
(1) 개념
- 복잡하고 다양한 명령어 집합을 사용하는 CPU 구조.
- 대표적인 예: 인텔(Intel) x86, AMD x86-64.
(2) 특징
| 특징 | 설명 |
|---|
| 명령어 개수 | 많음, 복잡한 기능 지원 |
| 명령어 길이 | 가변 길이 (명령어마다 크기가 다름) |
| 명령어 실행 시간 | 일정하지 않음 (명령어마다 실행 시간이 다름) |
| 메모리 접근 | 다양한 방식 지원 |
| 장점 | 강력한 기능을 가진 명령어 제공 → 적은 명령어로 프로그램 작성 가능 |
| 단점 | 명령어 파이프라이닝에 불리함 (명령어 실행 시간이 일정하지 않음) |
(3) 단점: 파이프라이닝과의 비호환성
- 명령어마다 실행 시간이 다르므로 CPU의 명령어 파이프라이닝이 어렵다.
- 예를 들어, 한 명령어는 1클럭, 다른 명령어는 4클럭이 걸리는 경우 파이프라인이 효율적으로 동작하지 않음.
(4) 해결 방법
- 현대 CISC CPU에서는 명령어를 더 작은 단위(마이크로 명령어)로 쪼개어 실행하여 RISC처럼 동작.
3. RISC (Reduced Instruction Set Computer)
(1) 개념
- 간단하고 정형화된 명령어 집합을 사용하는 CPU 구조.
- 대표적인 예: ARM (스마트폰, 태블릿, 애플 M 시리즈).
(2) 특징
| 특징 | 설명 |
|---|
| 명령어 개수 | 적음, 단순한 연산 위주 |
| 명령어 길이 | 고정 길이 (모든 명령어가 동일한 크기) |
| 명령어 실행 시간 | 일정 (대부분 1클럭 이내 실행) |
| 메모리 접근 | 최소화 (주로 레지스터 활용) |
| 장점 | 명령어 파이프라이닝에 유리함 (일정한 실행 시간) |
| 단점 | 시스크보다 많은 명령어를 사용해야 함 |
(3) 장점: 파이프라이닝에 유리
- 모든 명령어의 크기가 일정하여 CPU의 명령어 파이프라인을 효율적으로 운영 가능.
- 복잡한 명령어 대신 단순한 연산을 빠르게 반복하여 처리.
(4) 단점
- 명령어 개수가 적어 프로그램을 실행하려면 더 많은 명령어가 필요.
- 같은 기능을 수행하려면 CISC보다 더 많은 기계어 코드가 생성됨.
4. CISC vs RISC 정리
| 비교 항목 | CISC (시스크) | RISC (리스크) |
|---|
| 명령어 개수 | 많음 | 적음 |
| 명령어 길이 | 가변 길이 | 고정 길이 |
| 명령어 실행 시간 | 명령어마다 다름 | 대부분 1클럭 이내 |
| 명령어 파이프라인 | 불리함 | 유리함 |
| 메모리 접근 방식 | 다양한 방식 지원 | 최소화 (레지스터 활용) |
| 성능 최적화 | 강력한 명령어 제공 (적은 명령어로 동작) | 단순한 명령어를 빠르게 반복 실행 |
| 대표적인 CPU | 인텔 x86, AMD x86-64 | ARM (애플, 스마트폰, 태블릿) |
5. 현대 CPU의 실제 설계
- 이론적으로는 CISC = 복잡, RISC = 단순하지만, 현대 CPU는 두 가지 개념을 혼합하여 사용.
- CISC CPU (예: 인텔, AMD)
- 내부적으로 명령어를 더 작은 단위로 쪼개어 실행하여 RISC처럼 동작.
- RISC CPU (예: ARM, 애플 M1/M2)
- 현대적인 설계로 CISC의 기능을 일부 지원.
6. 결론
- CPU는 명령어 집합 구조(ISA)를 기반으로 동작하며, CISC와 RISC가 대표적인 두 가지 방식.
- CISC는 강력한 명령어를 사용하지만, 명령어가 복잡하여 파이프라이닝에 불리함.
- RISC는 단순한 명령어를 사용하여 파이프라이닝에 최적화됨.
- 현대 CPU는 CISC와 RISC의 장점을 조합하여 성능을 최적화하고 있음.
이제 CPU의 명령어 집합 구조와 CISC vs RISC의 차이점을 명확히 이해할 수 있을 거예요! 🚀