RISC / CISC
컴퓨터의 CPU(중앙 처리 장치)가 명령어를 처리하는 아키텍처
- 차이 : 명령어 집합의 복잡성과 처리 속도 사이의 균형을 어떻게 맞추느냐
1. CISC (Complex Instruction Set Computer)
- 핵심 철학: 소프트웨어 단계(개발자, 컴파일러)의 부담을 줄이고 하드웨어가 더 많은 일을 하도록 함
CISC의 특징
- 복잡하고 다양한 명령어: 수백 개의 명령어가 존재하며, 하나의 명령어가 메모리 접근과 연산을 동시에 수행하는 등 복잡한 작업 포함
- 가변 길이 명령어: 다양한 명령어의 형태와 길이
- 다양한 주소 지정 방식: 다양하고 복잡한 메모리 접근 방식
- 적은 수의 레지스터: 연산에 필요한 데이터를 주로 메모리에서 직접 가져와서 처리
2. RISC (Reduced Instruction Set Computer)
- 핵심 철학: 하드웨어(CPU)를 단순하게 만들고, 복잡한 작업은 소프트웨어(컴파일러)가 처리하도록 함. 모든 명령어를 빠르고 균일하게(주로 1클럭) 처리하여 CPU의 속도를 높이는 것이 목표
RISC의 특징
- 단순하고 적은 명령어: 명령어의 수가 적고, 각 명령어는 단순한 작업(예: '메모리에서 데이터 가져오기(Load)', '데이터 저장하기(Store)', '덧셈하기(Add)')만 수행
- 고정 길이 명령어: 모든 명령어의 길이가 동일. 이는 CPU가 명령어를 해석(Decode)하는 속도를 매우 빠르게 함
- 제한된 주소 지정 방식: 메모리 접근은
Load와 Store 명령어로만 제한하고, 모든 연산은 레지스터에서만 수행
- 많은 수의 레지스터: 데이터를 메모리가 아닌 CPU 내부의 빠른 레지스터에 저장하고 활용하여 메모리 접근 최소화
| 구분 | CISC (Complex Instruction Set) | RISC (Reduced Instruction Set) |
|---|
| 명령어 | 복잡하고 다양함, 가변 길이 | 단순하고 규격화됨, 고정 길이 |
| 명령어 수 | 많음 (예: 200~300개) | 적음 (예: 100개 미만) |
| 실행 시간 | 명령어마다 다름 (오래 걸림) | 대부분 1클럭 (빠르고 균일함) |
| 메모리 접근 | 연산 명령어가 메모리에 직접 접근 가능 | Load / Store 명령어로만 접근 |
| 레지스터 | 수가 적고, 용도가 정해진 경우가 많음 | 수가 많고, 범용적으로 사용 |
| 파이프라이닝 | 어려움 (명령어 길이가 달라 병목 발생) | 쉬움 (명령어가 규격화되어 효율적) |
| 컴파일러 | 단순 (하드웨어가 복잡한 일 처리) | 복잡 (최적화가 매우 중요) |
| 하드웨어 | 복잡 (전력 소모가 큼) | 단순 (전력 소모가 적음) |
| 코드 밀도 | 높음 (프로그램 용량이 작음) | 낮음 (프로그램 용량이 커짐) |
-
파이프라이닝(Pipelining): 명령어를 여러 단계(인출, 해석, 실행, 저장)로 나누어 공장처럼 동시에 처리하는 기술. RISC는 명령어 길이가 같기 때문에 파이프라인에 최적화되어 있음
-
코드 밀도: 같은 작업을 수행하는 프로그램의 전체 크기. CISC는 하나의 명령어가 많은 일을 하므로 코드 밀도가 높음
장단점
CISC
- 장점:
- 높은 코드 밀도: 프로그램의 크기가 작아 메모리 절약에 용이
- 하위 호환성: 기존의 복잡한 소프트웨어를 그대로 실행하기에 유리
- 단점:
- 복잡한 하드웨어: CPU 설계가 복잡하고, 개발 및 테스트에 시간이 오래 걸림
- 느린 속도: 복잡한 명령어는 실행에 여러 클럭이 필요하며, 파이프라이닝이 비효율적
- 높은 전력 소모: 복잡한 회로만큼 낮은 전력 효율
RISC
- 장점:
- 빠른 속도: 단순한 명령어를 1클럭에 처리하고, 파이프라이닝에 최적화
- 단순한 하드웨어: CPU 설계가 단순하여 개발 비용과 시간이 적게 소요됨
- 낮은 전력 소모: 회로가 단순하여 전력 효율이 매우 높음
- 단점:
- 낮은 코드 밀도: 같은 작업을 하려면 더 많은 명령어가 필요해 프로그램 용량이 커짐
- 컴파일러 의존성: CPU 성능이 컴파일러의 최적화 능력에 크게 좌우됨
활용
-
CISC (예: x86, x86-64):
- 주요 제조사: Intel, AMD
- 사용처: 개인용 데스크톱 PC, 노트북, 서버 등 고성능과 하위 호환성이 중요한 분야
-
RISC (예: ARM, RISC-V):
- 주요 제조사: Apple, Qualcomm, Samsung
- 사용처: 스마트폰, 태블릿, 웨어러블 기기, 임베디드 시스템 등 저전력과 효율성이 중요한 모바일 시장