[CS] CISC와 RISC의 차이와 개념

Arthur·2023년 8월 10일
3
post-thumbnail
post-custom-banner

공부하게된 계기


  1. 게임 서버 개발자 면접 질문 리스트에 CISC와 RISC에 대한 내용이 있었습니다
  2. 컴퓨터 과학 공부에 대한 니즈
  3. 게임 서버 개발과 CISC, RISC의 연관 관계(알아야 하는 이유)

게임 서버 개발 공고를 보던 중 CISC와 RISC의 개념과 차이에 대해 질문을 한다는 것을 봤습니다.

면접 준비의 목적도 있지만, 컴퓨터 과학 공부에 관심이 있기 때문에 이렇게 찾아보게 되었습니다.



왜 면접에서 물어볼까?


우선 해당 내용에 대해 ChatGPT에게 물어보고 받은 내용을 요약해봤습니다.

CISC와 RISC는 컴퓨터 아키텍처에서 사용되는 두 가지 다른 설계 철학입니다.
둘은 서로 다른 명령어 세트를 기반으로 하며, 서로 다른 하드웨어 구조를 가집니다.

  • CPU 하드웨어 이해 및 명령어 최적화
    => 각각 다른 명령어 세트로 인해 달라지는 하드웨어 구조와 최적화 방식
    • CISC는 명령어가 더 복잡하고 다양하며, 한 명령어에서 여러 동작 수행
    • RISC는 명령어가 더 단순하고 일관되며, 한 번의 클럭 사이클에 하나의 명령어만 실행

RISC와 CISC로 파생되는 키워드 들

RISC와 CISC는 아키텍처에 대한 내용이고 상당히 포괄적인 내용을 담고 있습니다.
그래서 구글 검색을 하면 다양한 파생 키워드 들이 나옵니다.

  • CPU의 명령어
  • CPU 성능
  • 하드웨어와 소프트웨어
  • 메모리 접근과 주소 지정 방식의 차이
  • Stack
  • 레지스터

파생된 키워드를 통해 자연스럽게 다른 질문으로 넘어갈 수 있는 주제입니다.
그래서 면접 질문으로 사용되지 않을까 생각하게 되었습니다.

면접에서 질문을 하는 이유에 대한 내용은 여기서 멈추고, CISC와 RISC에 대해 좀 더 자세한 내용을 작성해봤습니다.



핵심 키워드 및 내용 정리


파이프 라이닝이란?

  • 인출과 실행 단계가 겹치도록 프로세서를 설계해서 명령어 여러 개가 다양한 단계에 걸쳐 진행되도록 만들 수 있다.
    • 명령어한 개가 완료되는 데는 여전히 같은 시간이 걸리지만, 여러 개의 명령어를 동시에 처리하므로 전체적인 처리 속도는 빨라진다.


명령어 집합과 명령어 집합 구조


CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합(Instruction Set) 또는 명령어 집합 구조(Instruction Set Architecture)라고 합니다. 즉 CPU 마다 ISA가 다를 수 있습니다.

명령어의 기본적인 구조와 작동원리는 크게 다르지 않지만,
명령어의 세세한 생김새, 명령어로 할 수 있는 연산과 주소 지정 방식 등은 CPU마다 조금씩 다릅니다.

* ARM CPU와 x86 Intel CPU

CPU가 이해하는 명령어들이 달라지면 하드웨어의 설계에도 영향을 받게 됩니다.
레지스터의 종류와 개수, 메모리 관리 방법 등등 많은 것들이 달라지게 됩니다.

이런 명령어 집합 구조 중에 대표적인 것들이 CISC와 RISC가 있습니다.



CISC란?


복잡 명령어 집합 컴퓨터(Complex Instruction Set Computer)는 복잡한 집합을 갖는 CPU 아키텍처이다. 축소 명령어 집합 컴퓨터(RISC)와는 반의어로 간주된다.
<위키피디아 - CISC>

  • 명령어가 복잡하기 대문에 명령어를 해석하는 데 시간이 오래 걸리며, 명령어 해석에 필요한 회로도 복잡하다.
  • 다양한 주소지정 모드(Addressing Mode)가 있다 (5-20)
  • 명령어 길이가 가변적이다.
  • 메모리에서 오퍼랜드(피연산자)를 조작하는 명령어들이 많다.
  • 386, 486, Pentium 등 PC용 CPU


RISC란?


축소 명령어 집합 컴퓨터(Reduced Instruction Set Computer)는 CPU 명령어의 개수를 줄여 명령어 해석시간을 줄임으로써 개별 명령어의 실행속도를 빠르게 한 컴퓨터다.
<위키피디아 - RISC>

  • CPU의 명령어를 최소화하여 단순하게 제작된 프로세서 (30-100)
  • 적은 주소지정 모드(Addressing Mode)
  • 명령어 길이가 고정적이다.
  • 메모리를 액세스하는 명령은 LOAD, STORE 뿐이다.
  • 하나의 사이클에 하나의 명령어 실행이 가능하다.
  • 모든 오퍼랜드(피연산자)는 CPU내의 레지스터에서 조작된다.
  • IBM System/6000, 임베디드(MIPS, ARM계열 등), 매킨토시, 서버, 워크스테이션 등을 위한 특수 목적 CPU


CISC와 RISC의 차이


CISCRISC
복잡한 HW 구조덜 복잡한 HW 구조
많은 명령어적은 수의 명령 및 일정한 길이의 명령어
복잡하고 다양한 명령간단하고 표준화된 명령
명령어 당 하나의 클럭 사이클명령어 당 여러 클럭 사이클

위 표에서 중요한 내용은 둘이 사용되는 디바이스나 용도에 차이가 있다는 것입니다.
어떤 아키텍처가 더 좋고 안좋고의 차이로 접근하면 안된다는 것입니다.

각각 사용되는 디바이스가 다르고, 현재에 들어서서는 서로의 단점을 보완했기 때문입니다.


데스크탑 PC 등에는 CISC가 굉장한 우위를 가지고 있고,
스마트폰, 크롬북, 태블릿 등에는 RISC를 주로 사용한다고 합니다.
하지만 이 내용도 제품마다 다르다고 합니다.


❗CPU의 아키텍처로 성능을 비교하는 것은 어렵다

CISC에 비해 명령이 간단해서 명령어 개수가 많이지게 되는 RISC도 현재는 RAM이 굉장히 커지면서 실제 실행 코드 비중이 굉장히 작아지게 되었습니다.

예전에는 백 만개의 트랜지스터가 복잡한 CISC 아키텍처로 낭비되어 RISC 아키텍처로 잘게 쪼개서 사용하자는 아이디어가 있었습니다.
예전과 달리 현재는 69억 개의 트랜지스터(Kirin 690)가 있기도 하기 때문에 파이프라인의 명령어를 쌓이게 하지 않고 계속해서 처리할 수 있습니다.

오늘날에는 CISC 컴퓨터는 복잡한 명령을 RISC 명령으로 바꿔서 전송한다고 합니다.


결론은 CPU의 아키텍처를 바탕으로 성능을 비교하는 것은 어렵고 그다지 의미도 없다는 것입니다.



참고자료


  • [컴퓨터 아키텍처] CISC란? RISC란? CISC와 RISC 차이 => 링크
  • RISC와 CISC 개념, 분석, 비교 => 링크
  • CISC와 RISC의 기술구조적 차이 => 링크
  • 위키피디아 - CISC => 링크
  • 위키피디아 - RISC => 링크
  • 책 <1일 1로그 100일 완성 IT지식> - 챕터014 프로세서는 무조건 빠른게 좋을까?(71p) => 책 링크
  • 컴퓨터 구조 - ISA, CISC, RISC => 링크
  • [컴퓨터 공학 기초 강의] 14강. 명령어 집합 구조, CISC와 RISC => 링크
  • chatGPT
profile
기술에 대한 고민과 배운 것을 회고하는 게임 서버 개발자의 블로그입니다.
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 8월 10일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기