CISC

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
Senouis (토론 | 기여)님의 2023년 10월 27일 (금) 08:59 판 (→‎단점)

CISC(Complex Instruction Set Computing)이란 1980년대까지 유행했던 CPU 프로세서의 설계 경향이다.

특징

  • 2의 n승 개의 코드값(예: 32비트 명령어는 대략 42억 개)에 원하는 동작을 하는 명령어를 자유롭게 집어넣으면 된다. 참 쉽죠?
  • 명령어를 더 넣으려면 일부 코드값을 prefix로 정해서 뒤쪽에 추가로 offset 역할을 하는 코드값을 둘 수 있다.

장점

  • 복잡한 명령어를 단 하나의 명령어로 커버할 수 있다 보니 프로그램 내 코드 공간을 차지하는 코드값의 밀도가 높다.
  • 분기 명령어로 갈 수 있는 메모리 주소 범위에 제한이 없다.

단점

  • 분기 예측이 어렵고 실제로 명령어를 실행하는 단계에 가야 사용할 레지스터를 알 수 있는데, 그 원인으로 명령어에 레지스터 관련 정보를 넣지 않기 때문이다. 성능 측면에서 RISC에 비해 확실히 불리한 단점이다.
  • 디코더 역할을 할 디멀티플렉서를 많이, 복잡하게 배치해야 해서 디코더가 대체로 매우 비대하며, 그로 인해 발열이 생긴다. 실행 유닛이나 캐시 메모리를 많이 넣지 못하게 되어 최대 성능 잠재력이 떨어지는 것은 덤이다.

현황

RISC가 발표된 후에는 모토로라 68000 시리즈와 같이 사실상 사장된 명령어 설계 방식이다. 유일하게 살아남은 CISC 기반이었던 x86 ISA 호환 CPU들도 현재는 내부적으로 RISC 명령어를 처리하도록 명령어 변환 단계가 존재하는 하이브리드 구조로 바뀌었다.

그에 따라 마이크로코드 디코딩을 하는 전통 CISC CPU(예: 인텔 8051, 레거시 인텔 8086 등)은 현재 마이크로컨트롤러로만 사용한다.