프로그래밍/컴퓨터구조 및 운영체제

명령어 집합구조, CISC & RISC

gameObject 2023. 10. 21. 23:14
728x90

명령어 집합

- CPU가 이해할 수 있는 명령어들의 모음을 말한다.

- 예를들어 인텔의 CPU는 일반적으로 x86(x86-64) 명령어 집합을, 애플의 CPU는 일반적으로 ARM 명령어 집합을 따른다.

- 명령어 집합은 CPU가 이해할 수 있는 명령어들의 모음을 말하므로, 결국 인텔의 CPU에서 만든 실행파일을 맥으로 옮겨서 실행을 하려고 하면 실행이 안된다.

-> ISA(명령어 집합)은 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속.

 

CISC & RISC

1. CISC(Complex Instruction Set Computer)

 - 복잡한 명령어 집합을 활용하는 컴퓨터

- x86 / x86-64

 1) 장점

  - 복잡하고 다양한 명령어 활용이 가능하다.

  - 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용(기능, 주소 방식, 길이 등이 다양하다.)

  - 다양하고 강력한 명령어를 활용

  - 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있다.

 

 2) 단점

  - 대다수의 복잡한 명령어의 경우 사용 빈도가 낮다.

  - 명령어가 워낙 복잡하고 다양한 기능을 제공하는 탓에 명령어의 크기와 실행되기까지의 시간이 일정하지 않다.

  - 시간이 일정하지 않다보니 명령어 하나를 실행하는데에 여러 클럭 주기가 필요하다.

  - 따라서 명령어 파이프라이닝에 불리하다.

 

2. RISC(Reduced Instruction Set Computer)

 - 명령엉의 종류가 적으며 짧고 규격화된 명령어 집합을 활용하는 컴퓨터

 - ARM (Acorn RISC Machine)  (이름부터 RISC가 들어가있다.)

 1) 장점

  - 짧고 규격화된 명령어를 활용하기 때문에 명령어 파이프라이닝에 유리하다.

  - 메모리 접근 최소화, 레지스터를 십분 활용한다.

  - RISC는 CISC에 비해서 범용 레지스터의 수가 많은 경우가 많다.

 

 2) 단점

  - CISC보다 명령어 종류가 적기 때문에 더 많은 명령어가 필요하다.

 

** 위는 이론적인 이야기이며, 현대의 CPU에서 파이프라이닝은 엄청 중요하기 때문에 CISC도 해결방법을 찾았다.

-> CPU 내부적으로 좀 더 작은 단위로 쪼개서 실행한다.(마이크로 명령어, 명령어를 실행하는 그 동작 자체도 1클럭처럼 쪼갠다.) 내부적으로 RISC처럼 사용을 한다.

728x90