- 게임 서버 개발자 면접 질문 리스트에 CISC와 RISC에 대한 내용이 있었습니다
- 컴퓨터 과학 공부에 대한 니즈
- 게임 서버 개발과 CISC, RISC의 연관 관계(알아야 하는 이유)
게임 서버 개발 공고를 보던 중 CISC와 RISC의 개념과 차이에 대해 질문을 한다는 것을 봤습니다.
면접 준비의 목적도 있지만, 컴퓨터 과학 공부에 관심이 있기 때문에 이렇게 찾아보게 되었습니다.
우선 해당 내용에 대해 ChatGPT에게 물어보고 받은 내용을 요약해봤습니다.
CISC와 RISC는 컴퓨터 아키텍처에서 사용되는 두 가지 다른 설계 철학입니다.
둘은 서로 다른 명령어 세트를 기반으로 하며, 서로 다른 하드웨어 구조를 가집니다.
RISC와 CISC는 아키텍처에 대한 내용이고 상당히 포괄적인 내용을 담고 있습니다.
그래서 구글 검색을 하면 다양한 파생 키워드 들이 나옵니다.
파생된 키워드를 통해 자연스럽게 다른 질문으로 넘어갈 수 있는 주제입니다.
그래서 면접 질문으로 사용되지 않을까 생각하게 되었습니다.
면접에서 질문을 하는 이유에 대한 내용은 여기서 멈추고, CISC와 RISC에 대해 좀 더 자세한 내용을 작성해봤습니다.
CPU가 이해할 수 있는 명령어들의 모음을 명령어 집합(Instruction Set) 또는 명령어 집합 구조(Instruction Set Architecture)라고 합니다. 즉 CPU 마다 ISA가 다를 수 있습니다.
명령어의 기본적인 구조와 작동원리는 크게 다르지 않지만,
명령어의 세세한 생김새, 명령어로 할 수 있는 연산과 주소 지정 방식 등은 CPU마다 조금씩 다릅니다.
CPU가 이해하는 명령어들이 달라지면 하드웨어의 설계에도 영향을 받게 됩니다.
레지스터의 종류와 개수, 메모리 관리 방법 등등 많은 것들이 달라지게 됩니다.
이런 명령어 집합 구조 중에 대표적인 것들이 CISC와 RISC가 있습니다.
복잡 명령어 집합 컴퓨터(Complex Instruction Set Computer)는 복잡한 집합을 갖는 CPU 아키텍처이다. 축소 명령어 집합 컴퓨터(RISC)와는 반의어로 간주된다.
<위키피디아 - CISC>
축소 명령어 집합 컴퓨터(Reduced Instruction Set Computer)는 CPU 명령어의 개수를 줄여 명령어 해석시간을 줄임으로써 개별 명령어의 실행속도를 빠르게 한 컴퓨터다.
<위키피디아 - RISC>
CISC | RISC |
---|---|
복잡한 HW 구조 | 덜 복잡한 HW 구조 |
많은 명령어 | 적은 수의 명령 및 일정한 길이의 명령어 |
복잡하고 다양한 명령 | 간단하고 표준화된 명령 |
명령어 당 하나의 클럭 사이클 | 명령어 당 여러 클럭 사이클 |
위 표에서 중요한 내용은 둘이 사용되는 디바이스나 용도에 차이가 있다는 것입니다.
어떤 아키텍처가 더 좋고 안좋고의 차이로 접근하면 안된다는 것입니다.
각각 사용되는 디바이스가 다르고, 현재에 들어서서는 서로의 단점을 보완했기 때문입니다.
데스크탑 PC 등에는 CISC가 굉장한 우위를 가지고 있고,
스마트폰, 크롬북, 태블릿 등에는 RISC를 주로 사용한다고 합니다.
하지만 이 내용도 제품마다 다르다고 합니다.
CISC에 비해 명령이 간단해서 명령어 개수가 많이지게 되는 RISC도 현재는 RAM이 굉장히 커지면서 실제 실행 코드 비중이 굉장히 작아지게 되었습니다.
예전에는 백 만개의 트랜지스터가 복잡한 CISC 아키텍처로 낭비되어 RISC 아키텍처로 잘게 쪼개서 사용하자는 아이디어가 있었습니다.
예전과 달리 현재는 69억 개의 트랜지스터(Kirin 690)가 있기도 하기 때문에 파이프라인의 명령어를 쌓이게 하지 않고 계속해서 처리할 수 있습니다.
오늘날에는 CISC 컴퓨터는 복잡한 명령을 RISC 명령으로 바꿔서 전송한다고 합니다.
결론은 CPU의 아키텍처를 바탕으로 성능을 비교하는 것은 어렵고 그다지 의미도 없다는 것입니다.
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.