Computer Science
[Computer Science] CPU : 명령어 집합 구조, CISC와 RISC
WebDevLee
2024. 5. 15. 12:35
CPU의 언어인 명령어 집합 구조에 대해 정리하였습니다.
참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 명령어 집합 구조(Instruction Set Architecture) >
CPU가 이해할 수 있는 명령어들의 모음, 즉 CPU의 언어입니다.
=> CPU는 명령어 집합에 속해 있는 명령어들만 이해할 수 있습니다.
대표적으로 CISC와 RISC가 있습니다.
+. 인텔의 CPU는 일반적으로 "x86 (x86-64)" 명령어 집합을, 애플의 CPU는일반적으로 "ARM" 명령어 집합을 따릅니다.
+.같은 소스코드를 컴파일 하더라도 CPU의 종류에 따라서 Assemblier의 종류도 달라질 수 있습니다.

< CISC(Complex Instruction Set Computer) >
CISC는 복잡하고 다양한 수의 가변 길이 명령어 집합을 활용하는 CPU를 말합니다.
x86, x86-64는 CISC 기반 명령어 집합 구조입니다.

[ 장점 ]
- 다양하고 강력한 명령어를 활용하기 때문에, 상대적으로 적은 수의 명령어로도 프로그램을 실행가능.
[ 단점 ]
- 명령어가 복잡하고 다양한 기능을 제공 하는 탓에 명령어의 크기와 실행되기 까지의 시간이 일정하지 않음.
- 명령어 하나를 실행하는 데에 여러 클럭 주기 필요.
- 대다수의 복잡한 명령어는 사용 빈도가 낮음.
=> 명령어 파이프라이닝이 불리함
< RISC(Reduced Instruction Set Computer) >
RISC는 단순하고 적은 수의 고정 길이 명령어 집합을 활용하는 CPU를 말합니다.
ARM은 CISC 기반 명령어 집합 구조입니다.

[ 장점 ]
- 다양하고 강력한 명령어를 활용하기 때문에, 상대적으로 적은 수의 명령어로도 프로그램을 실행가능.
[ 특징 ]
- 메모리 접근을 최소화하고 대신 레지스터를 십분 활용 => CISC에 비해 범용 레지스터의 종류가 더 많은 경우가 많음.
- CISC보다 더 많은 명령어로 프로그램을 동작시킴.
CISC | RISC |
복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
가변 길이 명령어 | 고정 길이 명령어 |
다양한 주소 지정 방식 | 적은 주소 지정 방식 |
프로그램을 이루는 명령어의 수가 적음 | 프로그램을 이루는 명령어의 수가 많음 |
여러 클럭에 걸쳐 명령어 수행 | 1클럭 내외로 명령어 수행 |
파이프라이닝하기 어려움 | 파이프라이닝하기 쉬움 |