title: "**CISC, RISC**"
description: "CISC vs RISC"
cleanUrl: /sw-engineer/cisc-risc
ogImage: ""
floatFirstTOC: right
CISC가 개발된 동기
보다 강력하고 복잡한 고급 프로그래밍 언어, 즉 고급 언어(High-Level Language, HLL)에 대한 보다 나은 지원은 CPU 설계자의 공통된 목표.이를 위해 컴파일러의 단순화와 성능 향상을 목표로 두었고 이로 인해 CPU의 명령어 세트는 명령어 수가 더 많아지고 복잡한 경향이 생김.
CISC(Complex Instruction Set arChitecture, Computer)의 정의
각각의 명령어가 메모리 적재, 산술 연산, 메모리 저장 등의 여러 저수준 연산(마이크로 연산)을 실행하는 마이크로프로세서 명령어 세트 구조(microprocessor instruction set architecture). 본 용어는 RISC에 대비되는 의미로 만들어짐.
CISC의 특징
- 가변 길이의 많은 명령어: HLL이 요구하는 다양한 명령어에 대한 요구를 직접적으로 처리 가능.
- 다양한 주소 지정 방식을 동시에 수용: 즉치, 직접, 간접, 레지스터, 변위 주소지정 방식 등
- 적은 개수의 특화된 레지스터(데이터 레지스터, 주소 레지스터 등): 오퍼랜드 지정자가 참조할 레지스터의 형태가 OP 코드 내에 묵시적으로 지정되므로 비트 절약의 효과. 프로그래밍의 융통성이 제한됨.
- 파이프라이닝, 수퍼스칼라 방식 적용이 상대적으로 어려움: 다양한 명렁어, 명령어 형식, 주소지정 방식으로 인한 복잡도 증가로 인해
- control unit 구현 방식: micro programm 방식. (많은 수의 명령어, 즉 많은 수의 op 코드로 인한 복잡도 증가로 인해 hardwired 방식으로는 구현이 어려움)
RISC의 등장
- CISC 구조의 CPU 성능 향상을 위한 연구의 결과로 탄생.
- 명령어 세트 구조를 HLL에 맞추기보다는 전형적인 HLL 프로그램에서 가장 많은 시간을 소비하는 특성의 성능을 최적화함에 초점을 둠.
RISC(Reduced Instruction Set Computer)의 정의
명령어 세트의 크기와 주소지정 방식의 복잡도 모두를 줄임으로 더 간단한 구현과 더 나은 명령어 수준 병렬성, 그리고 더 효율적인 컴파일러를 얻는데 초점을 맞춘 CPU 설계 철학.
RISC(Reduced Instruction Set Computer)의 특징
- 사이클 당 단일 명령어: 기계 사이클(machine cycle) 당 하나의 기계어. 마이크로프로그램 제어 장치 액세스 필요 무.
- 많은 수의 범용 레지스터: 레지스터 간의 연산 등으로 기억장치 참조 횟수를 줄임. 중첩 레지스터 윈도우 등의 레지스터 참조 최적화 기법 사용. 기억장치 액세스 동작은 간단한 LOAD와 STORE 명령어만으로 이루어짐.