RISC

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
Senouis (토론 | 기여)님의 2021년 8월 26일 (목) 13:50 판 (도조시오)

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를 도태시킬 수 있냐는 점에서는 회의적인 여론이 아직 다수이다.

도보시오