RISC

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
Senouis (토론 | 기여)님의 2023년 10월 27일 (금) 08:56 판 (→‎현황)

RISC는 모든 명령어의 길이(bit 수)를 일정하게 다듬는 CPU 명령어셋 설계방식이다. CISC 구조와 대비되어 단순한 구조를 추구한다.

장점

  • 명령어가 단순하고 명령어의 유형이 몇 가지로 정해져 있으며 일정한 비트 길이를 가지기 때문에 디코더가 크게 단순화된다. 그리고 컴파일러 등의 소프트웨어 최적화도 쉬워진다.
  • 명령어의 특정 bit에 플래그 형식으로 레지스터를 지정하기 때문에 명령어 해석 도중에 해당 레지스터의 내용을 알 수 있다. 이는 CISC ISA에 억지로 파이프라인 구조를 적용하는 것보다 효율적이다.
  • CPU에서 바로 사용할 데이터를 담는 Geneal Purpose Register에 가깝게 변하면서 레지스터 할당이 CISC 구조와 달리 유연하다.
  • 메모리 내용을 조작하는 load/store 명령어와 레지스터 간 데이터 연산/복사인 move 기능을 분리하여 효율적인 메모리 접근이 가능해졌다. 이는 폰 노이만 구조의 개선판인 하버드 구조의 적용을 쉽게 만든다.

단점

  • 코드 밀도가 낮아진다. 메인 메모리 부족에 시달리는 임베디드 기기에서 x86 같은 일부 CISC 명령어셋이 아직도 쓰이는 이유다. 다만 RISC도 ARM의 Thumb 명령어셋처럼 bit 수를 충분히 줄인 경우에는 코드 밀도가 높은 편이다. 이제 임베디드 시스템에서는 CISC CPU를 코드 밀도를 보고 쓰기보다는 소프트웨어 생태계를 보고 쓰는 경우가 많다.
  • 프로그램 카운터 값을 고치는 분기 명령어가 갈 수 있는 메모리 범위에 제약이 심하다. Immediate Value의 비트 수가 특정 크기 이상 되지 못하도록 고정되기 때문이다. CISC의 경우 그냥 원하는 만큼의 명령어 bit 수를 늘려 메모리 공간을 자유자재로 점프할 수 있는 것과 대조적이다.
  • 복잡한 명령어를 수행할 때 CISC에 비해 RISC CPU가 더 많은 명령을 처리하게 된다.

현황

현재는 Apple의 M1 칩 및 ARM Cortex-X 시리즈의 등장으로 RISC CPU가 CISC 대비 동일 명령어 처리 조건에서는 더 빠를 수 있다는 인식이 생겼다.

그러나 아직 이를 뒷받침할 소프트웨어 생태계가 빈약하고 CISC 구조 CPU의 대표자인 인텔 x86 아키텍처가 CISC와 RISC 구조의 하이브리드로 진화하면서 RISC 명령어 세트가 CISC 명령어 세트를 도태시킬 수 있냐는 점에서는 회의적인 여론이 아직 다수이다. 하드웨어 측면에서는 확실한 경쟁 플랫폼이 되었으나 매킨토시 및 iOS의 백업을 받는 Apple Silicon의 CPU를 제외한 PC용 스냅드래곤 시리즈나 미디어텍 디멘시티 등은 탑재 기기들이 AMD64 탑재 PC만큼의 범용성을 보이지 못하기 때문이다. 거기에 더해 AMD64는 고성능 GPU의 장착이 가능하나 ARM 기반 PC에서 그런 사례가 나오지 않는 것도 범용성을 갉아먹는 문제가 되고 있다.

도보시오