CISC&RISC
CISC(Complex Instruction Set Computer)
- 복잡한 명령어 세트를 가진 컴퓨터 아키텍처
- CISC 아키텍처의 주요 목표는 한 명령어로 최대한 많은 연산을 수행하도록 설계하는 것으로 프로그래머나 컴파일러는 더 적은 수의 명령어를 사용하여 작업을 완료할 수 있게 된다
CISC의 주요 특징
- 다양하고 복잡한 명령어: CISC 아키텍처는 다양한 연산 및 조작을 위한 광범위한 명령어 세트를 제공합니다. 이러한 명령어 중 일부는 여러 단계의 연산을 한 번에 수행하기도 합니다.
- 변수 명령어 길이: 명령어의 크기나 형식이 일정하지 않을 수 있습니다. 이로 인해 명령어 디코딩이 복잡해질 수 있습니다.
- 명령어의 수행 시간이 다양함: 모든 명령어가 동일한 클럭 사이클에서 실행되지 않을 수 있습니다. 복잡한 명령어는 더 많은 시간이 필요할 수 있습니다.
- 하드웨어 중심: 많은 연산과 기능들이 하드웨어에 의해 직접 수행됩니다. 이로 인해 마이크로프로그래밍이나 마이크로코드라는 기법이 자주 사용됩니다.
- 메모리 접근: CISC 아키텍처는 종종 명령어 내에서 직접 메모리 접근을 허용합니다.
RISC(Reduced Instruction Set Computer)
- CISC 아키텍처의 복잡성을 줄이려는 노력에서 시작
- 간소화된 명령어 세트를 사용하여 고성능 연산을 제공하는 데 중점을 둔 아키텍처
- 간단하고 빠르게 실행되는 명령어들만 사용함으로써 프로세서 성능을 최적화
RISC의 주요 특징
- 간소화된 명령어 세트: RISC는 간단한 명령어들로 구성되어 있습니다. 이 명령어들은 대부분 고정된 크기를 가지며, 단일 클럭 사이클 내에서 완료될 수 있도록 설계되어 있습니다.
- 레지스터 기반 연산: 대부분의 연산은 레지스터 내에서 이루어지며, 메모리와의 직접적인 상호 작용은 최소화됩니다. 이를 위해 로드(load)와 스토어(store) 명령어를 사용하여 데이터를 레지스터와 메모리 간에 전송합니다.
- 파이프라이닝: RISC 프로세서는 파이프라이닝을 적극 활용합니다. 여러 명령어들이 동시에 다양한 처리 단계를 거치면서 동시에 실행될 수 있게 됩니다.
- 최적화된 컴파일러: RISC는 컴파일러 최적화에 큰 의존성을 가집니다. 복잡한 연산을 수행하기 위해 여러 간단한 명령어들이 순차적으로 실행되도록 컴파일러가 코드를 생성합니다.
- 클럭당 한 명령어 실행: 대부분의 RISC 명령어들은 하나의 클럭 사이클 내에서 실행될 수 있도록 설계되어 있습니다.
참고
- ChatGPT-4.0