Search
Duplicate
👗

CISC, RISC

Category
S/W 엔지니어
Tags
RISC
CISC
Created time
2007/11/27

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 명령어만으로 이루어짐.
간단한 주소지정 방식: 명령어 세트와 제어 장치가 단순화 됨.
간단한 명령어 형식: 하나 또는 적은 수의 형식이 사용. 특히 OP 코드의 길이가 고정됨.
적은 수의 명령어 세트
명령어 파이프라이닝, 병렬성 강조: 파이프라이닝, 수퍼스칼라 방식은 RISC가 고안될 때 고려된 사항. CISC에 비해 효율적으로 지원.
control unit 구현 방식: hardwired 방식. (적은 수의 op 코드이므로 CISC에 비해 구현이 용이)

CISC와 RISC 간의 논쟁

이전에 각 방식에 대한 찬반 논쟁이 상당했던 것에 비해 현재는 거의 사라짐. 이유는 객관적 평가 기준을 만들기 힘들 뿐 아니라, 두 기술들이 점차적으로 통합되고 있기 때문. 각각의 설계에 상대의 특징을 포함하는 것이 유리하다고 인식되어감.
CISC의 대표 격인 펜티엄 모델의 경우 범용 레지스터 개수의 증가 및 명령어 파이프라인 설계를 강조하는 추세.
RISC 진영의 PowerPC 모델은 명령어, 주소지정방식 등이 점점더 복잡해져가는 추세.

References

컴퓨터시스템구조론(Computer Organization & Architecture Designing for Performance). William Stallings, 김종현 역