RISC
RISC는 모든 명령어의 길이(bit 수)를 일정하게 다듬는 CPU 명령어셋 설계방식이다. CISC 구조와 대비되어 단순한 구조를 추구한다.
장점
- 명령어가 단순하면서도 일정한 길이를 가지기 때문에 디코더가 크게 단순화된다.
- 명령어의 특정 bit에 플래그 형식으로 레지스터를 지정하기 때문에 명령어 해석 도중에 해당 레지스터의 내용을 알 수 있다.
- 파이프라인 버블 발생 확률이 낮다.
- CPU에서 바로 사용할 데이터를 담는 Geneal Purpose Register에 가깝게 변하면서 레지스터 할당이 CISC 구조와 달리 유연하다.
- 메모리 내용을 조작하는 load/store 명령어와 레지스터 간 데이터 복사인 move 기능을 분리하여 효율적인 메모리 접근이 가능해졌다.
단점
- 코드 밀도가 낮아진다. 메인 메모리 부족에 시달리는 임베디드 기기에서 x86 같은 일부 CISC 명령어셋이 아직도 쓰이는 이유다.
- 프로그램 카운터 값을 고치는 분기 명령어가 갈 수 있는 메모리 범위에 제약이 심하다. CISC의 경우 그냥 원하는 만큼의 명령어 bit 수를 늘려 메모리 공간을 자유자재로 점프할 수 있는 것과 대조적이다.
- 복잡한 명령어를 수행할 때 CISC에 비해 RISC CPU가 더 많은 명령을 처리하게 된다.
현황
현재는 Apple의 M1 칩 및 ARM Cortex-X 시리즈의 등장으로 RISC CPU가 CISC 대비 동일 명령어 처리 조건에서는 더 빠를 수 있다는 인식이 생겼다.
그러나 아직 이를 뒷받침할 소프트웨어 생태계가 빈약하고 CISC 구조 CPU의 대표자인 인텔 x86 아키텍처가 CISC와 RISC 구조의 하이브리드로 진화하면서 RISC가 CISC를 도태시킬 수 있냐는 점에서는 회의적인 여론이 아직 다수이다.