컴퓨터 공학(컴퓨터 구조 + 운영체제)

명령어 집합 구조, CISC와 RISC

뚜sh뚜sh 2023. 5. 17. 14:18

명령어 집합 (구조) - ISA

  • ISA는 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속임
  • CPU가 이해할 수 있는 명령어들의 모임
  • CPU의 언어인 셈
  • 명령어가 달라지면 그에 대한 나비효과로 많은 것들이 달라짐
  • ex) 명령어 해석 방식, 레지스터의 종류와 개수, 파이프라이닝의 용이성 등..
  • 인텔의 CPU는 일반적으로 "X86 (X86-64)" 명령어 집합을, 애플의 CPU는 일반적으로 "ARM" 명령어 집합을 따름
  • 인텔 CPU 컴퓨터에서 만든 실행 파일을 그대로 아이폰에 옮겨 특별한 설정없이 바로 실행하면 실행이 안됨

 

 

 

CISC(Complex Instruction Set Computer)

  • 복잡한 명령어 집합을 활용하는 컴퓨터(CPU)
  • x86, x86-64는 CISC 기반 명령어 집합 구조
  • 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용
  • 다양하고 강력한 명령어를 활용
  • 상대적으로 적은 수의 명령어로도 프로그램을 실행할 수 있음
  • 메모리를 최대한 아끼며 개발해야 했던 시절에는 인기가 높았으나 명령어 파이프라이닝이 불리하다는 치명적인 단점이 있음
  • 명령어가 워낙 복잡하고 다양한 기능을 제공하는 탓에 명령어의 크기와 실행되기까지의 시간이 일정하지 않음
  • 복잡한 명령어 때문에 명령어 하나를 실행하는 데에 여러 클럭 주기가 필요함
  • 게다가, 대다수의 복잡한 명령어는 사용 빈도가 낮음

 

 

 

RISC(Reduced Instruction Set Computer)

  • 명령어의 종류가 적고, 짧고 규격화된 명령어를 사용
  • 단순하고 적은 수의 고정 길이 명령어 집합을 활용함
  • 메모리 접근 최소화(load, store), 레지스터 십분 활용
  • 다만 명령어 종류가 CISC보다 적기에 더 많은 명령어로 프로그램을 동작시킴