CPU의 언어인 ISA란 무엇인지 이해하고, 현대 CPU의 주요 설계방식인 CISC와 RISC의 정의와 차이점에 대해 알아보자.
명령어 집합
- ISA = Instruction Set Architecture
- CPU마다 ISA 가 다를 수 있음
- 서로 이해할 수 있는 명령어가 다름 = 어셈블리어도 다름
- 제어장치가 명령어를 해석하는 방식, 사용되는 레지스터의 종류와 개수, 메모리 관리 방법 등 다 달라짐
CISC
- Complex Instruction Set Computer의 줄임말이다.
- 복잡한 명령어 집합을 활용하는 CPU 설계 방식.
- 가변 길이 명령어를 활용함
- 다양한 주소 지정 방식을 사용해서 특별한 상황에서만 사용되는 독특한 주소 지정방식 존재.
- 적은 수의 명령어만으로도 프로그램 동작 가능 = 메모리 공간 절약
CISC의 단점
- 명령어가 복잡하고 다양하여 명령어의 크기와 실행되기까지 시간이 일정하지 않음
- 명령어 하나를 실행하는 데에도 여러 클럭 주기가 필요함
- 규격화 되지 않은 명령어 = 파이프라인이 제대로 동작되지 않음
RISC(CISC 보완)
- Reduced Instruction Set Computer의 줄임말이다.
- 규격화된 명령어, 1클럭 내외로 실행되는 명령어 지향
- 고정 길이 명령어를 활용함
- 파이프라이닝에 최적화 됨
- RISC를 load-store 구조라고 부르기도 함
- 메모리 접근을 단순화, 최소화 = 주소 지정 방식을 최소화
- 레지스터 적극 활용
- 사용 가능한 명령어 개수가 CISC보다 적어서 CISC보다 많은 명령으로 프로그램을 작동
CISC와 RISC를 표로 알아보기
| CISC | RISC |
|---|
| 복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
| 가변 길이 명령어 | 고정 길이 명령어 |
| 다양한 주소 지정 방식 | 적은 주소 지정 방식 |
| 프로그램을 이루는 명령어의 수가 적음 | 프로그램을 이루는 명령어의 수가 많음 |
| 여러 클릭에 걸쳐 명령어 수행 | 1클럭 내외로 명령어 수행 |
| 파이프라이닝하기 어려움 | 파이프라이닝 하기 쉬움 |