CISC·RISC·EISC 명령어 세트 아키텍처의 성능과 설계 선택
CISC·RISC·EISC 명령어 세트 아키텍처를 IPC, 파이프라인, 실제 구현 사례, 전력 효율과 코드 밀도 관점에서 비교한다.
2026-08-14 · 최초 발행 2025-12-28
IPC는 ISA 설계의 차이를 드러내는 출발점
명령어 세트 아키텍처는 프로세서의 성능, 전력 효율, 구현 복잡도에 직접 영향을 준다. CISC, RISC, EISC는 명령어의 복잡도와 병렬 실행을 처리하는 위치를 서로 다르게 잡는다. 이 차이는 클럭 사이클당 처리량(IPC), 파이프라인 구성, 컴파일러의 역할로 이어진다.
CISC의 가변 실행 비용
CISC 아키텍처의 평균 CPI(Cycles Per Instruction)는 약 3이다.
명령어 복잡도에 따라 실행에는 115 사이클이 들며, 평균 소요 시간은 35 사이클이다. 마이크로코드 해석, 가변 길이 명령어의 디코딩, 메모리 피연산자 접근이 지연의 원인이 된다. 복잡한 디코딩 회로와 파이프라인 스톨, 분기 예측 실패에 따른 큰 페널티도 성능을 제한한다.
RISC가 지향하는 파이프라인
RISC의 이상적인 목표는 CPI = 1이다.
고정 길이 명령어는 인출과 디코딩을 단순하게 만들고, Hardwired 제어는 조합 논리 회로로 명령어를 해석한다. Load/Store 분리는 메모리 접근을 예측 가능하게 하며 파이프라인 효율을 높인다.
이상적 조건에서는 CPI = 1.0이지만, 데이터 해저드가 있으면 CPI는 1.1~1.3으로 증가한다. 분기 명령어로 파이프라인을 플러시하면 성능이 떨어지며, 슈퍼스칼라 구현에서는 IPC > 1도 가능하다.
EISC가 컴파일러에 맡기는 병렬성
EISC는 명시적 병렬성을 통해 CPI < 0.5를 목표로 한다.
VLIW(Very Long Instruction Word) 원칙에서는 단일 명령어 워드에 여러 연산을 담고, 컴파일러가 병렬성 분석과 스케줄링을 수행한다. 하드웨어의 의존성 검사는 줄어들지만, 병렬성을 얼마나 효과적으로 뽑아내는지가 컴파일러에 달린다.
IA-64는 128비트 번들에 3개 명령어와 템플릿을 담고, 동시 실행 가능한 명령어를 명시했다. 투기적 로드와 술어 실행도 이 구조에 포함된다. 이론적 IPC는 2~6이지만 실제 IPC는 컴파일러 품질, 병렬성 추출의 한계, 코드 스케줄링 복잡도에 좌우된다.
프로세서 구현에서 확인되는 차이
x86은 외부 CISC와 내부 RISC 스타일을 결합한다
Intel과 AMD의 x86 계열 프로세서는 CISC를 대표하는 구현이다.
8086(1978)은 마이크로코드 제어를 사용하는 순수 CISC에 가까웠다. 80486(1989)은 파이프라인을 도입했고, Pentium Pro(1995)는 명령어를 마이크로 연산으로 분해하기 시작했다. Core 시리즈(2006~)는 외부 CISC 인터페이스와 내부 RISC 스타일 실행을 결합하면서도 역호환성을 유지했다.
복잡한 디코딩은 전력 소비를 늘리지만, 마이크로 연산 캐시는 디코딩 오버헤드를 줄인다. 고급 분기 예측과 광범위한 소프트웨어 생태계도 x86의 특성이다.
RS/6000과 POWER의 RISC 설계
IBM RS/6000의 POWER 아키텍처는 순수 RISC 구현 사례다.
POWER는 고정 32비트 명령어와 Load/Store 아키텍처를 사용한다. 32개 범용 레지스터와 32개 부동소수점 레지스터를 두며, 슈퍼스칼라 실행으로 최대 4 명령어/사이클을 처리한다.
높은 클럭 주파수(당시 기준), 효율적인 파이프라인, AltiVec 벡터 연산 확장은 서버와 워크스테이션에서의 강점으로 이어졌다. POWER9와 POWER10은 IPC > 3을 달성하며 AI 및 HPC 워크로드에 최적화됐고, OpenPOWER는 오픈소스 ISA를 제공한다.
IA-64가 보여준 EISC의 한계
Intel과 HP가 공동 개발한 IA-64는 EISC를 상용 프로세서에 적용한 시도였다.
EPIC(Explicitly Parallel Instruction Computing)은 컴파일 타임 병렬성 추출을 전제로 한다. IA-64에는 128개 범용 레지스터, 128개 부동소수점 레지스터, 64개 술어(Predicate) 레지스터가 포함됐다. 투기적 실행, 분기 없는 조건 처리를 위한 술어 실행, 자동 레지스터 관리를 위한 레지스터 스택 엔진, 소프트웨어 파이프라이닝 지원도 특징이다.
컴파일러 최적화의 어려움, x86과의 성능 격차 미미, 역호환성 부재, 생태계 부족은 시장 실패의 원인이 됐다. Itanium은 2021년에 단종됐다. EISC의 병렬 실행 개념은 ARM Cortex-A 시리즈의 듀얼 이슈, Qualcomm Hexagon DSP의 멀티 슬롯, 임베디드 시스템에 제한적으로 남아 있다.
성능은 IPC만으로 비교되지 않는다
단일 스레드 성능은 x86의 마이크로 연산 최적화, POWER의 파이프라인 효율, IA-64의 컴파일러 의존성처럼 서로 다른 기반에서 형성된다.
| 아키텍처 | SPECint (상대) | SPECfp (상대) | IPC | 클럭 (GHz) |
|---|---|---|---|---|
| x86 (Intel Core) | 100 | 100 | 3~4 | 3.5~5.0 |
| POWER9 | 95 | 120 | 3~5 | 3.0~4.0 |
| IA-64 (Itanium 9500) | 70 | 90 | 2~4 | 1.7 |
멀티스레드 확장성도 다르다. x86은 AMD EPYC에서 최대 64코어를 제공하며, POWER는 최대 15코어/칩과 SMT-8을 제공한다. IA-64 Itanium 9500은 최대 8코어다.
서버급 x86의 전력은 약 200300W, POWER9는 약 150200W, IA-64는 약 130170W다. 비교 대상으로 제시되는 ARM은 모바일서버에서 약 5~30W 수준이다.
워크로드가 선택 기준을 바꾼다
x86은 데스크톱의 게임·생산성 도구·멀티미디어, 서버의 웹 서버·데이터베이스·가상화, AWS·Azure·GCP 같은 클라우드 환경에서 활용된다. 거대한 소프트웨어 생태계, 역호환성, 컴파일러 성숙도, 개발자 친숙도, 90% 이상의 시장 지배력이 배경이다.
POWER RISC는 과학 시뮬레이션, 금융 모델링, 빅데이터 분석, POWER9 + NVIDIA GPU 기반 AI 학습에 맞춰 활용된다. 최대 230GB/s 메모리 대역폭도 이 영역의 특성이다.
EISC의 개념은 DSP의 오디오·비디오 처리, 네트워크 프로세서의 패킷 처리, 그래픽 프로세서의 셰이더 실행, FPGA 소프트 코어의 맞춤형 ISA에 적용된다.
복잡도와 전력, 코드 밀도의 균형
CISC x86은 고성능·고전력, RISC POWER는 고성능·중전력, RISC ARM은 중성능·저전력이라는 성격을 보인다. EISC의 전력 특성은 구현에 따라 달라진다.
코드 밀도와 실행 속도도 일률적으로 맞바꾸기 어렵다. CISC는 높은 코드 밀도와 가변적인 속도를, RISC는 낮은 코드 밀도와 빠른 속도를, EISC는 중간 코드 밀도와 컴파일러 품질 의존성을 갖는다.
ISA의 경계는 구현 단계에서 흐려지고 있다
x86은 P-core + E-core 하이브리드 아키텍처, AVX-512 벡터 확장, CXL(Compute Express Link) 지원, 3D 스택 메모리 통합으로 계속 진화한다. RISC-V 오픈소스 ISA의 부상, AWS Graviton을 통한 ARM 서버 시장 진출, Apple Silicon M 시리즈의 성공은 RISC의 확장을 보여준다.
GPU의 SIMT(Single Instruction Multiple Threads), TPU의 시스톨릭 어레이, 도메인 특화 가속기(DSA), 이기종 컴퓨팅 통합은 EISC의 병렬 실행 개념을 다른 방식으로 재해석한다.
CISC와 RISC의 경계는 마이크로아키텍처 수준에서 점차 모호해지고 있다. ISA의 선택은 목표 애플리케이션, 전력 예산, 소프트웨어 생태계, 구현 기술을 함께 고려하는 문제다.