CPU에서는 메모리에서 Binary 명령을 읽어와 해석하고 실행한다. 이때 사용되는 Instruction은 Memory에 저장되어 있어야 한다.
이때 어떤 명령어 구조를 사용하느냐에 따라 RISC와 CISC로 나뉜다.
CISC : Complex Instruction Set Computer
장점
컴파일러 작성이 쉽다.
호환성이 좋다.
단점
하나의 명령어가 복잡하여 해석(디코딩)에 시간이 오래걸리며, 해석에 필요한 회로가 복잡하다.
적은 수의 일부 명령어만 주로 쓰인다.
명령어의 길이가 달라서 동시의 여러개의 명령처리는 어렵다.
RISC : Reduced Instruction Set Computer
장점
각 명령어가 한 클럭에 실행되도록 고정되어, 파이프라인 성능에 최적화 됨
고정된 명령어이기 때문에 해석(디코딩)속도가 빠르며, 여러개의 명령어를 처리할 수 있다.
단점
컴파일러의 최적화 과정이 복잡해진다.
명령길이가 고정되어 있기 때문에 코드효율이 낮다.
각 특징들을 표로 정리하면
CISC CPU | RISC CPU | |
명령어 수 | 많음 | 적음 |
명령어 크기 | 명령어마다 다름 | 고정 |
한 명령어 처리 속도 | 명령어마다 다름 | 빠름 |
프로그래밍 코드 | 단순화될 수 있음 | 다소 복잡 |
CISC 구조는 복합명령을 하나의 명령 SET으로 만들어 효율성을 도모하지만, RISC 구조는 명령어 수를 최소화하고 명령어 크기를 고정하여 놓고 명령어 자체의 동작을 최적화시켜 효율을 높이는게 특징이다.
일반적으로 PC계열은 CISC구조 임베디드 계열은 RISC 구조를 사용한다.
RISC는 각 명령어가 한 클럭에 실행되도록 고정되어, pipeline 성능에 최적화 됨
CISC는 실행에 필요한 클럭도 다르기 때문에 pipeline 설계가 어렵지만
- 아직 너무도 많은 프로세서가 CISC 모델로 구축되어 있고, 이것을 전부 바꾸는 것은 너무 큰 비용이 든다.
- CISC 성능의 취약점은 RISC와 같은 파이프라인을 일부 사용하고 집적도는 더 높임으로써 부분적으로 보완이 가능하다.
- RISC에 비해 호환성이 좋다.
라는 측면에서 사용된다.