CS
[컴퓨터 구조] CISC와 RISC
하늘☁️
2025. 1. 3. 23:02
1. 명령어 집합, 명령어 집합 구조 (ISA: Instruction Set Architecture)
- CPU가 이해할 수 있는 명령어들의 모음
- CPU마다 다를 수 있고 ISA가 달라지면 같은 소스 코드로 만들어진 프로그램도 서로 다른 어셈블리어를 사용
- 이로 인해 ISA가 다르면 명령어 해석 방식, 레지스터 종류, 메모리 관리 방법 등이 달라진다.
- ISA는 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속
2. CISC (Complex Instruction Set Computer)
- 복잡하고 다양한 명령어 집합을 사용하는 CPU 설계 방식
- 대표적인 예 : x86, x86-64 아키텍처
- 특징 :
- 가변 길이 명령어 : 명령어가 길고 복잡하여 실행 시간이 일정하지 않다.
- 적은 수의 명령어로 프로그램 실행 가능
- 메모리 절약 : 적은 명령어로 프로그램을 동작시킬 수 있어 메모리 공간 절약
- 단점
- 명령어 파이프라인에 비효율적 : 명령어 실행 시간이 일정하지 않아 파이프라인 처리에 어렵다.
- 복잡한 명령어는 사용 빈도가 낮아 실제로는 자주 쓰이는 기본적인 명령어만 사용
✍🏻 CISC 기반의 CPU는 복잡한 명령어 세트를 제공하나, 대부분의 복잡한 명령어는 드물게 사용되고 명령어 실행 시간이 일정하지 않아 파이프라인 처리에서 효율성이 떨어진다.
3. RISC (Reduced Instruction Set Computer)
- CISC의 한계를 극복하고자 등장한 방식으로 명령어의 종류를 최소화하고 단순화한 CPU 설계 방식
- 특징 :
- 고정 길이 명령어 : 명령어의 길이가 일정
- 짧고 규격화된 명령어 : 자주 쓰이는 명령어를 빠르고 효율적으로 실행
- Load-Store 아키텍처 : 메모리 적근은 load와 store 명령어로만 제한, 메모리 접근을 최소화하고 레지스터를 적극적으로 사용하고 일반적으로 더 많은 범용 레지스터 사용
- 장점 :
- 명령어 파이프라인 최적화 : 명령어 실행 시간이 일정하고, 파이프라인에 최적화되어 있어 성능 향상에 유리
- 단순화된 메모리 접근 : 메모리 접근을 최소화하고 레지스터 활용도를 높여 처리 속도가 빠르다.
- 단점 :
- 많은 수의 명령어 : CISC에 비해 명령어의 수가 적지만 동일한 작업을 위해 더 많은 명령어가 필요
특징 | CISC | RISC |
명령어 길이 | 가변 길이 명령어 | 고정 길이 명령어 |
명령어 복잡성 | 복잡하고 다양한 명령어 | 단순하고 적은 명령어 |
명령어 실행 시간 | 실행 시간이 불규칙, 여러 클럭에 걸쳐 명령어 수행 |
실행 시간이 일정, 1클럭 내외로 명령어 수행 |
파이프라인 호율성 | 파이프라인에 비효율적 | 파이프라인에 최적화 |
메모리 접근 | 명령어 내에서 복잡한 메모리 접근 가능 | 메모리 접근은 load, store 명령어만 사용 |
주요 사용 예시 | x86, x86-64 | ARM, MIPS, PowerPC |
프로그램을 이루는 명령어의 수 | 적음 | 많음 |
주요 장점 | 메모리 절약, 적은 명령어로 프로그램 실행 |
빠르고 예측 가능한 성능, 파이프라인 최적화 |