복잡 명령어 집합 컴퓨터

복잡 명령어 집합 컴퓨터(Complex Instruction Set Computer, CISC)는 복잡한 명령어 집합을 갖는 CPU 아키텍처이다. 축소 명령어 집합 컴퓨터(RISC)와는 반의어로 간주된다.

명령어가 복잡하기 때문에 명령어를 해석하는 데 시간이 오래 걸리며, 명령어 해석에 필요한 회로도 복잡하다. 보통 풍부한 어드레싱 기능을 갖추고 있어 명령의 직교성이 좋으며, 어느 어드레싱 모드에서도 임의의 연산을 수행할 수 있다. 연산에 대해서는 레지스터와 레지스터 연산, 레지스터와 메모리 연산, 메모리와 메모리 연산을 모두 갖추고 있는 것이 보통이다. 피연산자(operand)는 2개에서 3개까지 지정할 수 있는 경우가 많다. 즉, 메모리 1의 내용과 메모리 2의 내용의 논리곱을 취해 메모리 3에 넣는 일을 하나의 명령어로 수행할 수 있다.

C 언어의 연산자는 CISC인 PDP-11이 갖추고 있던 명령에서 나온 것이다. 인덱스 어드레싱시의 오프셋도 명령의 데이터의 길이에 맞추어 바뀌는 것이 많다. 또, 길이가 다른 데이터 사이의 연산에서도 연산 전에 자동적으로 부호 확장 등이 수행되기 때문에, 데이터 길이를 가지런히 하는 명령어가 필요 없는 경우가 많다. 하나의 명령어를 수행하는 처리가 복잡하기 때문에, 마이크로 프로그램 방식을 채택하는 경우가 많다.

주로 메인프레임이나 X86 호환 프로세서, 모토로라사의 MC 680x0 (68K)계열 프로세서에서 이 방식을 사용하고 있다. 펜티엄 시리즈와 같은 CISC CPU도 내부적으로는 복잡한 명령들을 다시 단순한 명령들로 나누어 명령어 파이프라인에서 처리하기 때문에, 실제 내부 작동원리는 RISC와 같다고 할 수 있다.

같이 보기 
 RISC
 MC 680x0
 X86

각주 

마이크로프로세서
명령어 집합 구조