[컴퓨터 구조] 5-3 CISC와 RISC
이 글을 혼자 공부하는 컴퓨터구조 + 운영체제 (한빛미디어) 책을 읽고 혼자 공부한 내용입니다.
잘못 이해한 부분이 있을 수 있고, 문제가 있는 부분 댓글로 알려주시면 수정하겠습니다.
명령어 집합
CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합 또는 명령어 집합 구조(ISA)라고 함
ISA가 같은 CPU끼리는 서로의 명령어를 이해할 수 있지만,
ISA가 다르면 서로의 명령어를 이해하지 못함 -> ISA는 일종의 CPU의 언어
ISA가 다르면 제어장치가 명령어를 해석하는 방식, 사용되는 레지스터의 종류와 개수, 메모리 관리 방법 등 많은 것이 달라짐
CISC (Complex Instruction Set Computer)
'복잡한 명령어 집합을 활용하는 컴퓨터'를 의미
명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용
상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다
단점
활용하는 명령어가 워낙 복잡하고 다양한 기능을 제공하는 탓에
명령어의 크기와 실행되기까지의 시간이 일정하지 않음 + 명령어 하나를 실행하는 데에 여러 클럭 주기를 필요로 함
CISC가 활용하는 명령어는 명령어 수행 시간이 길고 가지각색이기 때문에 파이프라인이 효율적으로 명령어를 처리할 수 없음
명령어 파이프라인이 제대로 동작하지 않는다는 것은 현대 CPU에서 아주 치명적인 약점
사실 대다수의 복잡한 명령어는 사용 빈도가 낮음
정리하면
1. CISC 명령어 집합은 복잡하고 다양한 기능을 제공하기에 적은 수의 명령으로 프로그램을 동작시키고 메모리 절약
2. 명령어의 규격화가 어려워 파이프라이닝이 어려움
3. 대다수의 복잡한 명령어는 그 사용 빈도가 낮음
4. CISC 기반 CPU는 성장에 한계가 있음
RISC (Reduced Instruction Set Computer)
CISC에 비해 명령어가 적고, 짧고 규격화된 명령어, 1클럭 내외로 실행되는 명령어를 지향
-> '고정 길이 명령어' 활용
RISC는 메모리 접근을 단순화, 최소화하는 대신 레지스터를 적극적으로 활용
범용 레지스터 개수도 더 많음
명렁어 개수가 CISC보다 적기 때문에 RISC는 CISC보다 많은 명령으로 프로그램을 작동
CISC | RISC |
복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
가변 길이 명령어 | 고정 길이 명령어 |
다양한 주소 지정 방식 | 적은 주소 지정 방식 |
프로그램을 이루는 명령어의 수가 적음 | 프로그램을 이루는 명령어의 수가 많음 |
여러 클럭에 걸쳐 명령어 수행 | 1클럭 내외로 명령어 수행 |
파이프라이닝하기 어려움 | 파이프라이닝하기 쉬움 |