Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
Computer Science/컴퓨터 구조

10. 명령어 집합 구조, CISC, RISC

by Toughie 2023. 8. 20.

📱명령어 집합 구조, CISC, RISC📱

 

CPU는 명령어를 실행한다.

명령어의 모양, 연산, 주소 지정 방식은 CPU마다 다르다.


명령어 집합(구조)_ISA(Instruction Set Architecture)

CPU가 이해 가능한 명령어들의 모음. 즉 CPU의 언어라고 이해할 수 있다. 

하드웨어가 소프트웨어를 이해하기 위한 약속.

(ex. 인텔 CPU는 X86 명령어 집합, 애플 CPU는 ARM 명령어 집합)

 

명령어가 달라지면 해석 방식, 레지스터의 종류와 개수, 파이프라이닝(인출,해석,실행,저장) 용이성 등 많은 것들이 달라짐.


CISC(Complex Instruction Set Computer)

복잡한 명령어 집합을 활용하는 컴퓨터(CPU) (ex. x86, x86-64)

'가변 길이 명령어' 활용.

다양하고 강력한 명령어가 많기 때문에, 상대적으로 적은 수의 명령어로도 프로그램 실행 가능.

 

메모리 용량 면에서 이점이 있지만.. '명령어 파이프라이닝이 불리하다'는 단점이 있음.

명령어가 복잡하고 기능이 많기 때문에 '명령어의 크기 및 실행시간이 일정하지 않음'

또한 '명령어 하나를 실행하는 데 여러 클럭 주기가 필요'.

- 파이프라이닝이 잘 되려면 명령어 실행 시간이 클럭 주기에 맞춰 정형화 되어 있어야하기 때문.

어려운 파이프라이닝의 예시

또한 대부분의 복잡한 명령어의 사용 빈도는 낮음. 자주 쓰는 명령어만 반복해서 쓰게 됨.

 

참고: CISC의 단점을 극복하기 위해 CPU 내부적으로 명령어보다 더 작은 MICRO 명령어를 사용하는 경우도 있음.

명령어 실행 동작 자체를 1클럭 내부로 잘게 쪼개서 실행하는 것.. 

즉 내부적으로는 RISC 처럼 동작하도록 되어 있는 경우가 많음.

 

-> 강력한 기능이 있어도 잘 안쓸거면 차라리 파이프라이닝 유리하게 만드는 게 낫지 않나?


RISC(Reduced Instruction Set Computer)

명령어의 종류가 적고, 짧고 규격화된 명령어 사용 (대부분 1클럭 내에 실행될 수 있도록)

'고정 길이 명령어 집합 활용' -> 명령어 파이프라이닝에 유리함!

메모리 접근 최소화(load, store), 레지스터를 많이 활용함.(범용 레지스터의 종류가 많은 경우가 있음)

but 명령어 종류가 CISC보다 적기 떄문에 프로그램 동작에 더 많은 명령어가 필요함.


학습 출처: https://www.youtube.com/watch?v=bls_GjX-4U8&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl