
CISC
Complex Instruction Set Computer (CISC)는 컴퓨터 아키텍처의 한 유형으로, 명령어 집합이 매우 복잡하고 다양하며, CPU가 더 적은 명령어로 더 복잡한 작업을 수행할 수 있도록 설계된 **ISA(Instruction Set Architecture).
(ISA는 컴퓨터의 CPU가 이해하고 실행할 수 있는 명령어들의 집합을 의미)
복잡한 명령어 집합
- CISC ISA는 매우 많은 수의 명령어를 포함. 일반적으로 1000개 이상의 명령어를 가지며, 각 명령어는 복잡한 연산을 수행할 수 있음.
- 복잡한 명령어를 사용함으로써 프로그램의 크기를 줄이고, 메모리 공간을 절약하는 데 기여.
- CISC 명령어는 고정된 길이가 아닌 가변 길이 명령어로 구성. 각 명령어는 1에서 15바이트까지의 다양한 크기를 가짐.
유동적인 오퍼랜드 저장 위치
- CISC는 오퍼랜드를 처리하는 데 있어 전용 레지스터(dedicated registers), 일반 목적 레지스터(general purpose registers), 메모리(memory), 스택(stack) 등 다양한 위치를 사용할 수 있음.
- 이러한 유연성 덕분에 프로그래머는 다양한 데이터 처리 방식을 사용할 수 있지만, 이는 하드웨어 복잡성을 증가시키며, 명령어 해석 및 실행에 더 많은 시간이 걸리게 함.
유동적인 데이터 크기
- CISC 아키텍처는 데이터를 처리할 때 1, 2, 4, 8 바이트 크기의 값을 지원하며, 이는 부호가 있는 데이터(signed)와 부호가 없는 데이터(unsigned) 모두를 포함합니다.
- 이로 인해 특정 연산이 다양한 데이터 형식에 대해 수행될 수 있지만, 명령어의 해석 과정이 더욱 복잡해질 수 있음.
다양한 주소 지정 모드
- CISC ISA는 메모리에 접근할 때 다양한 주소 지정 모드를 사용. 이러한 모드는 데이터가 저장된 위치를 특정하고 명령어가 그 데이터를 어떻게 처리할지를 정의.
- CISC는 10개 이상의 주소 지정 모드를 제공하며,
Mem[segment + reg + reg*scale + offset]와 같이 매우 복잡한 메모리 주소를 계산할 수 있음.
- 이러한 유연성은 메모리 액세스 방식에 많은 자유도를 제공하지만, CPU 설계를 복잡하게 하고, 명령어 디코딩 및 실행 속도에 부정적인 영향을 미칠 수 있습니다.
결론
- 결론적으로, CISC ISA는 복잡한 명령어를 통해 프로그램 크기를 줄이고 메모리 공간을 절약하는 데 중점을 두었지만, 그로 인해 CPU 설계가 복잡해지고 성능 최적화의 어려움이 생겼음
- 이러한 이유로 RISC와 같은 단순한 명령어 집합을 채택한 아키텍처가 등장하게 되었으며, 현대의 CISC 프로세서는 내부적으로 RISC의 성능 최적화 기술을 결합.
RISC
명령어 집합 간소화
- RISC ISA는 복잡한 명령어 대신 간단한 명령어를 사용. 약 200개의 명령어를 포함하며, 이는 CISC 아키텍처보다 훨씬 적다.
- 복잡한 명령어 대신 간단하고 균일한 명령어를 사용하여 CPU가 명령어를 빠르게 처리할 수 있도록 한다.
고정된 명령어 길이
- RISC 아키텍처는 32비트 크기의 고정된 명령어를 사용합니다. 모든 명령어가 동일한 길이를 가지기 때문에, 명령어 디코딩과 실행 과정이 단순해지고, CPU의 파이프라이닝을 더 효율적으로 사용할 수 있다.
- 명령어 길이가 고정되어 있으면, CPU는 명령어를 빠르게 읽고 처리할 수 있으며, 복잡한 명령어 디코딩 단계가 줄어들어 성능이 향상됨.
레지스터 기반 오퍼랜드
- RISC ISA에서는 거의 모든 연산이 레지스터에서 이루어짐. 모든 오퍼랜드는 레지스터에 저장되고, 연산은 메모리와의 상호작용 없이 레지스터 간에만 이루어진다. 이는 메모리 접근 횟수를 줄여 CPU의 처리 속도를 높이는 데 기여한다.
- CISC와는 달리, RISC는 메모리에서 직접 데이터를 가져오거나 저장하는 명령어가 거의 없으며, 메모리 접근은 로드(load)와 스토어(store) 명령어를 통해서만 이루어진다.
단순한 주소 지정 모드
- RISC ISA는 일반적으로 하나의 주소 지정 모드만을 사용합니다. 이 주소 지정 모드는
Mem[reg + imm] 형식으로, 레지스터와 즉시 값(imm)을 더해 메모리 위치를 계산.
- 이는 복잡한 주소 지정 모드를 사용하는 CISC와는 대조적이며, 명령어 실행 과정이 단순해지고 CPU의 설계가 간소화.
고성능 및 저전력 설계
- ARM과 같은 RISC 기반 아키텍처는 스마트폰, 태블릿 등 저전력 장치에 널리 사용되고 있음.
- 단순한 명령어 집합과 레지스터 중심의 연산 방식 덕분에, RISC는 에너지 소비가 적으며, 저전력 환경에서도 높은 성능을 발휘.