본문 바로가기
임베디드소프트웨어

RISC와 CISC 개념, 분석, 비교

by Go! Jake 2022. 7. 2.

마이크로 프로세서에서 RISC와 CISC는 빠지지 않고 등장하는 개념으로 CPU의 명령어셋 아키텍처 설계입니다. 즉, 프로세서의 ISA (Instruction Set Architecture)에 속합니다. 초기 컴퓨터는 CISC를 사용했으나 1980년 대 CISC의 복잡성을 줄이고자 RISC가 고안되었습니다. 간단한 명령어들로 구성되어 있다면 CPU 디자인이 쉬워질 것이고, 저렴하고 더 빨라질 수 있을 것이라는 것으로 생각되었습니다. 더 아래 자세한 내용을 통해 각 개념과 차이점에 대해 알아보도록 하겠습니다. 

RISC (Reduced Instruction Set Computer)란?

RISC는 Reduced Instruction Set Computer로 마이크로 프로세서 아키텍처의 하나의 유형입니다. 가장 기본적인 구조로 구성된 명령어 집합입니다. 따라서 아주 적은 유형의 최적화된 명령어를 가지게 되는 데, 많은 것을 할 수는 없지만 빠른 실행 속도를 얻을 수 있게 됩니다.

- '각 클럭 사이클 당 하나의 명령'을 실행합니다.

- 명령어로딩(loading), 명령어 평가(evaluating), 명령어 저장(storing) 등 간단한 명령으로 구성되어 있습니다.

: 로드와 저장 명령만 메모리에 접근하고 나머지는 레지스터 간에서 이뤄지게 됩니다.

- 표준화되고 일정한 길이의 명령을 가집니다.

: 따라서 디코드도 쉬워지며, 실행 파이프라인으로 보내기도 수월 해 집니다. 어느 비트부터 어느 비트까지가 명령인지 분명하기 때문입니다.

: 분기 명령의 점프가 제약이 있습니다. 

 

RISC의 핵심은 레지스터 셋과 스레드 병렬 처리를 증가시키면서 CPU의 명령 실행 속도를 높이는 데 있습니다. RISC 구조가 코어 로직에 대한 트랜지스터가 훨씬 더 적기 때문에 가능합니다.

 

대표적으로 ARM (Advanced RISC Machine) 아키텍처가 RISC를 베이스로 한 명령어 셋 아키텍처입니다.

 

CISC (Complicated Instruction Set Computer)란?

CISC는 하나의 명령어가 여러 실행을 처리할 수 있습니다. 위에 살 펴 본 명령어 로딩, 평가, 저장 모두 하나의 명령어로 실행될 수 있습니다. RISC와 다르게 명령어 개수를 최소화하는 구조를 가지고 있습니다. 다만 명령당 사이클이 증가하게 됩니다.

 

RISC vs. CISC 비교와 현재

CPU 성능을 최적화 하고자 하는 동일한 목적을 가지고 있습니다. 둘의 큰 차이점은 아래와 같습니다.

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

이 외 차이점이지만 현재는 크게 문제가 되지 않은 차이점으로 아래와 같이 하나 적겠습니다.

RISC는 CISC에 비해 RAM 소비가 크다: CISC에 비해 명령이 간단하므로 명령어 개수가 많아지게 됩니다. 이에 따라 RAM 소비량이 증가하게 됩니다. 다만, 최근에는 RAM이 굉장히 커지면서 (스마트폰, PC 등..) 실제 실행 코드 비중은 굉장히 작아지게 되었습니다. 

 

현재는...

서버나 데스크탑 PC x86는 CISC를 사용합니다. 스마트폰, 크롬북, 태블릿 등에 모두 RICS를 사용하고 있습니다. IBM에서도 AI 등에 RISC 베이스의 아키텍쳐를 사용하고 있습니다. 따라서, 데스크탑 PC 등에 CISC가 굉장한 우위를 가지고 있지만, 제품에 따라 다릅니다.

 

과거 백 만개의 트랜지스터가 복잡한 CISC 아키텍쳐로 낭비되기 보다는 RISC 아키텍쳐로 잘게 쪼개서 사용하는 게 어떠냐는 아이디어에서 시작되었습니다. 이 때와는 다르 게 현재는 69억 개의 트랜지스터(Kirin 690)가 있기도 하고 분기 예측(Branch prediction)으로 어떠한 곳으로 분기할 것인지 추측합니다. 파이프라인의 명령어를 쌓이게 하지 않고 계속해서 처리할 수 있습니다. 또한 인텔은 펜티엄 프로부터 프로세서를 변경하였는 데, 하나의 복잡한 명령을 세 개의 명령어로 쪼개서 파이프라인에 올리는 방식을 사용합니다. 오늘날 복잡한 CISC 컴퓨터는 복잡한 명령을 RISC 명령으로 바꿔서 전송합니다. 1980년대 1990년대 RISC와 CISC를 고려하던 시절과는 많은 것이 달라졌습니다.

Reference

RISC vs CISC - Is it Still a Thing? - YouTube

댓글