CSIC(Complex Instruction Set Computer)
CISC는 복잡한 명령어 집합을 갖는 CPU 구조(아키텍처)를 말합니다.
명령어가 복잡하여 해석에 시간이 오래 걸리고 회로도 또한 복잡합니다.
특징
- 많은 수의 명령어가 있지만 적은 수의 명령어만 주로 사용됩니다.
- 각각의 명령어가 프로세싱 성능을 극대화하도록 설계되어 명령어 길이가 가변적입니다.
- 따라서 데이터나 주소값이 필요하면 명령어 길이를 늘려 해결합니다.(인덱스 어드레싱의 오프셋도 명령 데이터의 길이에 맞추어 바뀌는 것이 많다.)
- 하나의 명령어를 수행하는 처리가 복잡하여 마이크로 프로그램 방식을 채택합니다.
- 비파이프라이닝 방식입니다.
장점
- 적은 지시로 많은 작업 처리
- 하나의 마이크로코드에 많은 명령어를 담아내므로 코드의 밀도가 높아 프로그램 용량을 줄일 수 있다. 과거엔 메모리가 크지 않아서 CISC가 유용했습니다.
- 생산성이 높다.(마이크로코드 작성이 쉽다)
예시로 CISC는 12=4*3와 같이 하나의 코드로 해결가능하지만 RISC는 2+2+2+2+2+2의 코드를 입력해야한다.
- 호환성이 좋다.(그렇기에 컴퓨터(PC)에서 많이 쓴다)
- CPU 구조가 바뀌어도 후속 CPU 에서 명령어를 지원한다면 호환이 된다.
단점
- 하나의 명령어가 복잡하여 명령어 해석(디코딩)에 시간이 오래 걸리며, 해석에 필요한 회로가 복잡하여 설계가 힘들다.
- 명령어의 길이가 달라 여러 개의 명령(병렬) 처리는 어렵다.
- RISC에 비해 많은 전력이 소모되고, 속도가 느리며 비싸다.
용어
- 마이크로 코드(microcode) or 마이크로 프로그램
CPU 내부에 존재하는 기계어와 관련된 프로그램입니다.
CPU의 기계어의 명령을 더 작고 낮은 레벨의 명령어의 조합으로 구현하는 것을 마이크로 코드 또는 마이크로프로그램이라 합니다.
이용자가 변경하는 일이 거의 없어 HW 일부로 간주됩니다.
참조
위키백과
skagh님의 티스토리
관련 pdf