명령어 집합 구조(ISA)
CPU가 이해하고 실행할 수 있는 명령어들의 집합
즉, ISA는 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속
CPU 마다 ISA가 다르기 때문에, 인텔 CPU(x86)를 사용하는 프로그램은 ARM 기반 아이폰에서 실행되지 않음
즉, ISA의 차이는 소프트웨어 호환성에도 영향을 미치며, 동일한 프로그램을 다른 ISA에서 실행하려면 별도의 변환이 필요
CISC
CISC는 Complex Instruction Set Computer의 약자로, 복잡한 명령어 집합을 사용하는 CPU
다양하고 강력한 기능의 명령어 집합을 활용하기 때문에 명령어의 형태와 크기가 다양한 가변 길이 명령어 사용
- 장점
- 적은 수의 명령어만으로 프로그램을 동작시킬 수 있고, 이를 통해 메모리 절약 가능
- 단점
- 활용하는 명령어가 복잡하여 명령어의 크기와 실행 시간을 규격화하기 어려움
- 따라서, 파이프라인을 구성하기 어렵고, 파이프라인이 효율적으로 명령어를 처리할 수 없음
- 명령어 해석기가 복잡해지며, CPU 설계가 어려워지고 전력 소비가 증가할 수 있음
- 활용하는 명령어가 복잡하여 명령어의 크기와 실행 시간을 규격화하기 어려움
RISC
RISC는 Reduced Instruction Set Computer의 약자로, CISC와 반대로 짧고 규격화된 명령어(고정 길이 명령어)를 사용하여 파이프라이닝에 최적화된 구조
또한, 메모리 접근 명령어를 load, store 두개로 제한하여 load-store 구조라고도 불림
이러한 특징으로 메모리 접근을 단순화, 최소화하는 대신 레지스터를 적극 활용하여
CISC 보다 레지스터를 사용하는 연산이 많고, 범용 레지스터 개수도 많음
- 장점
- 파이프라인 최적화 가능
- 명령어 크기가 일정하고 실행 시간이 예측 가능하여 파이프라인을 효율적으로 운영 가능
- 따라서, CPU 내부에서 명령어 병렬 실행이 더욱 용이
- 하드웨어 설계가 단순해짐
- 명령어 해석이 간단하므로, CPU 설계를 단순하게 할 수 있어 전력 소비가 적고 성능이 좋음
- 특히, 모바일 및 임베디드 시스템에서 전력 효율이 중요한 경우 RISC 구조가 많이 사용
- 파이프라인 최적화 가능
- 단점
- CISC에서는 하나의 복잡한 명령어로 처리할 수 있는 작업을 여러 개의 명령어로 분리해야 하므로, 명령어 개수가 증가할 수 있음
- 이로 인해, 메모리 사용량이 증가할 가능성이 높음
비교
구분 | CISC | RISC |
명령어 길이 | 가변 길이 명령어 | 고정 길이 명령어 |
명령어 복잡성 | 복잡한 명령어 구조 | 단순한 구조 |
메모리 접근 방식 | 연산 중에도 메모리 접근 가능 | Load-Store 방식으로 메모리 접근 최소화 |
파이프라이닝 | 비효율적 | 최적화 |
레지스터 개수 | 적음 (메모리 의존) | 많음 |
하드웨어 복잡성 | 높음 (명령어 해석기가 복잡) | 낮음 |
'CS' 카테고리의 다른 글
[TIL] 메모리 계층 구조 (1) | 2025.03.13 |
---|---|
[TIL] 명령어 병렬 처리 기법 (파이프 라이닝, 슈퍼스칼라) (0) | 2025.03.13 |