---
description: ARM과 x86 아키텍처의 주요 차이점
---

# RISC vs CISC

Reduced Instruction Set Computer vs Complex Instruction Set Computer

* **주요 차이점**
  1. **명령어 세트의 복잡성**:
     * **CISC**: 복잡한 명령어 세트를 포함하며, 이로 인해 단일 명령어가 여러 연산을 수행하거나 여러 단계를 거쳐 실행될 수 있습니다.
     * **RISC**: 간단하고 최소한의 명령어 세트를 가지며, 명령어는 보통 고정된 길이를 가지고 있고 단순하게 설계되어 있습니다.
  2. **실행 사이클**:
     * **CISC**: 명령어마다 다양한 수의 클럭 사이클이 필요할 수 있습니다.
     * **RISC**: 대부분의 명령어는 한 클럭 사이클에 실행됩니다.
  3. **하드웨어 vs 소프트웨어**:
     * **CISC**: 많은 연산이 하드웨어 레벨에서 처리되기 때문에, 컴파일러는 덜 복잡할 수 있습니다.
     * **RISC**: 소프트웨어나 컴파일러가 연산의 최적화와 스케줄링에 더 큰 역할을 합니다.
  4. **코드의 크기**:
     * **CISC**: 복잡한 명령어들로 인해 실행 코드의 크기가 상대적으로 작을 수 있습니다.
     * **RISC**: 더 많은 명령어가 필요할 수 있기 때문에 코드의 크기가 상대적으로 클 수 있습니다.
* **개발의 배경**
  * **CISC**: 초기의 프로그래밍 환경에서 메모리와 저장 공간이 비싸고 제한적이었기 때문에, 효율적인 코드 생성을 위해 복잡한 명령어 세트가 필요했습니다.
  * **RISC**: 성능 향상을 위해 명령어 파이프라이닝과 병렬 처리를 적용하기 용이하도록 명령어 세트를 최소화하려는 목적으로 발전했습니다.
* **대표적인 예**
  * **CISC**: 인텔의 x86 아키텍처
  * **RISC**: ARM, MIPS, SPARC 등

이러한 구분은 이론적인 것이며, 현대의 프로세서 설계에서는 RISC와 CISC의 경계가 모호해진 경우가 많습니다.

예를 들어, 인텔의 x86 아키텍처는 전통적으로 CISC로 분류되지만, 내부적으로 RISC와 유사한 기법을 사용하기도 합니다.
