RISC와 CISC의 차이와 대표 예시
RISC(축소 명령어 집합 컴퓨터)와 CISC(복합 명령어 집합 컴퓨터)는 명령어 집합을 설계하는 두 가지 철학입니다. RISC는 파이프라인 처리가 쉬운 단순하고 고정 길이인 소수의 명령어를 사용합니다. CISC는 명령어 하나로 더 많은 일을 할 수 있는 복잡하고 가변 길이인 다수의 명령어를 사용합니다. 오늘날에는 경계가 흐려졌습니다. 최신 x86 프로세서는 CISC 명령어를 더 단순한 내부 연산으로 변환하므로, 지금의 차이는 주로 명령어 집합과 소프트웨어 생태계 수준에서 의미가 있습니다.
| 비교 항목 | RISC | CISC |
|---|---|---|
| 핵심 아이디어 | 명령어 하나가 하는 일은 적지만 빠르게 실행되도록 설계한 소수의 단순한 명령어 | 강력한 명령어를 다수 두어, 일부는 여러 단계를 한꺼번에 처리합니다 |
| 명령어 길이 | 고정(예: 기본 RISC-V와 AArch64 명령어 집합은 32비트) | 가변(x86 명령어는 1~15바이트) |
| 메모리 접근 | 로드/스토어 구조: 로드와 스토어 명령어만 메모리에 접근하고, 산술 연산은 레지스터에서 수행합니다 | 많은 명령어가 메모리 피연산자를 직접 사용할 수 있습니다 |
| 레지스터 | 범용 레지스터가 많습니다(RISC-V와 AArch64는 32개) | 더 적습니다(x86-64는 범용 레지스터 16개) |
| 디코딩 | 단순하여 파이프라인 처리에 유리하고 하드웨어를 작게 유지합니다 | 복잡합니다. 최신 x86 코어는 명령어를 내부 마이크로 연산으로 변환합니다 |
| 코드 크기 | 더 크지만, 압축 명령어 확장(Thumb, RISC-V C 등)으로 줄일 수 있습니다 | 명령어 하나가 더 많은 일을 하므로 대체로 더 조밀합니다 |
| 예시 | ARM, RISC-V, MIPS, PowerPC | x86 및 x86-64(인텔, AMD), IBM z/Architecture |
| 대표 용도 | 스마트폰, 임베디드 시스템, 그리고 점점 늘어나는 노트북과 서버 | 소프트웨어 호환성이 필수인 PC와 서버 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.