나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2026-10-05 21:48:45

RISC



<bgcolor=#96834a> 명령어 집합
CISC x86 (AMD64● · IA-32● · IA-16) · M68K · MC68xx · MOS 65xx · Z80 · 8080 · 8051
System/360 · z/Architecture · PDP-11 · VAX
RISC Arm (A64 · A32 · T32) · RISC-V● · MIPS● · DEC Alpha● · Power ISA IBM Power · PowerPC · CELL-BE
LoongArch · OpenRISC · PA-RISC · SPARC
SuperH · Xtensa · AVR AVR32
VLIW
EPIC
E2K · IA-64 · Crusoe


1. 개요2. 특징3. 역사4. RISC에 대한 평가
4.1. 오해
5. 현황6. 아키텍처 목록7. 관련 문서

1. 개요

Reduced Instruction Set Computer

RISC는 명령어를 단순하고 규칙적인 형식으로 제한해 하드웨어 구현의 복잡도를 줄이는 것을 목표로 하는 명령어 집합 아키텍처 설계 내지는 이를 구현한 CPU를 의미한다. RISC라는 이름은 1980년 데이비드 패터슨과 데이비드 디첼이 발표한 논문에서 처음 쓰였다.

첫 구현은 IBM에서 1970년대부터 연구하여 1980년 시제품을 제작한 IBM 801이며, 80년대 컴퓨터과학자 데이비드 패터슨과 존 헤네시가 학계의 초기 연구를 주도하였다. UC 버클리에서 데이비드 패터슨이 진행한 Berkeley RISC 연구는 1987년 등장한 SPARC로 이어졌으며, 스탠포드 대학교에서 존 헤네시가 진행한 MIPS 연구는 1986년 MIPS 아키텍처로 이어진다. 패터슨과 헤네시는 RISC를 정립한 공로로 2017년 튜링상을 수상하였다.

20세기 등장했던 MIPS, SPARC, PA-RISC, DEC Alpha 등 많은 RISC 아키텍처가 개발이 중단되어 역사 속으로 사라졌으나, 반대로 Arm 아키텍처 및 RISC-V는 크게 성공하여 현 시점에도 많은 RISC 프로세서가 출하되고 있다.

2. 특징

기본적인 개념은 트랜지스터 기반의 메인프레임을 개선하는 과정에서 개발된 아키텍처 개념으로, 최대한 단순히 설명하자면 그동안 별 생각 없이 중구난방으로 만들어 온 CPU 명령어셋을 CPU를 고속화시키는 데 적절하게 재정립하여 같은 트랜지스터 숫자를 투입하면서도 더 높은 성능의 CPU를 만들자는 것이다.

1980년대 당시 CISC 명령어셋에 대해 지적되는 문제점은 다음과 같았다.

이러한 문제점들을 해결하기 위해 RISC가 등장하였고 아래와 같은 방법으로 문제를 해결하였다.

다만 RISC는 다음과 같은 단점을 가지게 되었다.

3. 역사

1970년대까지 컴퓨터가 지원하는 명령어가 점점 늘어나는 과정에서 하드웨어의 기능이나 처리 속도 개선과는 본질적으로 무관한 프로그래머의 편의만을 위한 부가적인 명령어가 전체 명령어의 대다수를 차지하게 되었고, 이를 구현하기 위해 크고 복잡한 마이크로코드가 요구되어 칩의 면적이 필요 이상으로 커지게 되었다. 이러한 경향의 정점으로 평가되는 1977년 발표된 VAX의 경우 아예 다항식의 값을 통째로 계산하는 명령어가 존재할 정도였다.

한편 1970년대 기존 컴퓨터를 분석한 결과 프로그램에서 실행하는 명령어의 대부분은 간단한 명령어라는 것이 드러났고, 같은 시기 컴파일러의 발전과 메모리의 대용량화/저가화 트렌드가 겹치며 복잡한 명령어 없이 단순한 명령어들로만 컴퓨터를 만들자는 아이디어가 등장하게 되었다.

1970년대 IBM에서는 IBM 801을 개발하며 이 개념을 도입하였다. 이 과정에서 등장한 컴파일러 기법이 컴파일러 백엔드 분야에서 잘 알려진 그레고리 차이틴(Gregory Chaitin)의 레지스터 할당 알고리즘이다.

한편 1970년대 후반 데이비드 패터슨은 마이크로코드를 연구하는 과정에서 같은 개념을 독립적으로 구상하여 1980년 "RISC" 개념을 주장하는 글을 발표하였다.

이어서 1980년대 초 UC 버클리에서는 RISC 프로젝트를, 스탠포드에서는 MIPS 프로젝트를 진행하며 당대 대표적인 미니컴퓨터였던 VAX보다 높은 성능을 정량적으로 입증하였다.

이에 따라 1980년대 중반부터 1990년대 초반까지 ARM, MIPS 아키텍처, HP의 PA-RISC, Sun의 SPARC, 인텔의 i960, AMD의 Am29000, IBM의 POWER, DEC의 Alpha 등이 우후죽순 상용화되며 RISC의 첫 번째 전성기가 열렸다.

그러나 1990년대 인텔과 AMD가 프로세서 내부적으로 RISC와 유사한 구조를 도입하며 PC 시장에서 얻은 막대한 수익을 투자해 경쟁적으로 성능을 높였고, 규모의 경제에 힘입어 과거 RISC의 주력 시장이었던 고성능 워크스테이션 및 서버 시장을 잠식하며 많은 RISC 프로세서 업체가 쇠퇴하게 되었다. 동시에 임베디드 시장에서 RISC가 성장하면서 MIPS는 임베디드 시장에서 명맥을 유지하게 되었고, Arm이 점차 성장하게 되었다.

이후 2000년대부터 모바일 시장이 급격하게 성장하였고, 여러 요소가 겹쳐 Arm이 이 시장의 과실을 독식하게 되면서 RISC가 다시 주목받기 시작하였다. 이후 2010년대 들어 스마트폰 시장이 PC 시장보다 더 커지게 되면서 RISC의 두 번째 전성기가 열렸다.

특히 2020년 애플이 맥 라인업에서 기존 인텔 프로세서를 Arm 아키텍처 기반 Apple Silicon으로 대체하였고, 클라우드 업체에서도 Arm 코어 기반 프로세서를 도입하며 2020년대 현재는 x86의 영역이었던 PC/서버까지 공세를 전개하는 상황이다.

4. RISC에 대한 평가

이렇게 장점만 보면 RISC가 CISC보다 진보된 아키텍처로 보이겠지만 현실적으로 PowerPC가 단종되고 POWER를 장착한 서버와 메인프레임이 금융권에서마저 퇴출되는 데에는 이유가 있는 법이다.

AMD64 vs Arm 문서 참고.

4.1. 오해

RISC와 관련하여 여러 가지 오해가 생기고는 한다. 아래는 오해가 생길만한 내용들을 정리했다.
절반만 맞다. RISC에는 명령어를 줄이는 것도 포함하지만 RISC에서 보다 본질적이고 핵심적인 것은 피연산자 지정 모드를 줄이는 것이다.
현존하는 RISC 프로세서에는 곱셈, 나눗셈이 없는 것부터 명령어가 천 개가 넘는 것까지 그 목적에 따라 다양하다. RISC라고 하여 성능을 희생하여 다른 명령으로 쉽게 대체할 수 없는 명령을 없애는 것은 아니다. 특히 Arm의 경우 MIPS나 RISC-V등과 비교하면 명령어가 더 많은 편이다.
전혀 그렇지 않다. 80년대와는 달리 현대 컴퓨터 기술에서 명령어 집합은 성능에 거의 관여하지 않는다. 파이프라인, 캐시 메모리, SIMD 명령, 코어 개수, 소프트웨어 최적화 등의 요소가 훨씬 크게 작용하며 전력과 성능 중에서 우선시하는 설계 목적에 따라서도 완전히 달라진다. 당장 아마존 웹 서비스만 해도 최근 세대는 Arm 기반 인스턴스를 주력으로 밀고 있고, 성능도 AMD64와 비교해 동급 이상을 보일 정도.
초저전력 임베디드를 제외한다면 그렇지 않다. 일반 사용자들에게도 잘 알려진 RISC 프로세서인 Arm이 주로 저전력 제품에 치중되어 있어 RISC는 저전력이다와 같은 평가를 내리나 이는 같은 RISC인 IBM의 POWER(마이크로프로세서)나, 화룡 810 사태로 충분히 거짓임을 보일 수 있다. 일반적인 CPU에서 디코더는 칩 면적을 별로 차지하지 않고 전력도 1%정도먼 소모한다. 전력 소모에 영향을 미치는 것은 위에서 언급한 모든 요소, 설계 목적과 더불어 동작 전압과 공정 선폭 등이 매우 크게 작용한다.
상황에 따라 다르다.
아래는 SPECint2006 바이너리의 코드 크기이다.
RV32C, Thumb, microMIPS (MIPS16e)와 같이 명령어 단위를 16비트 단위로 간략화하여 성능을 조금 희생하되 임베디드와 같이 작은 메모리를 가진 환경에서 동작시키기 위한 명령어 세트로, CISC인 x86을 RV32C, Thumb-2, MIPS16e와 비교하면 비슷하거나 오히려 코드 밀도가 낮아 보이지만 32비트 단위인 표준 세트인 RV32, Armv7-A, MIPS32와 x86을 비교하면 가변 길이를 가진 CISC보다 밀도가 낮음을 확인할 수 있다.
파일:69AE8AD6-3413-4269-9709-BC946ED55387.jpg

5. 현황

이 기술이 개발된 뒤 RISC 기술은 마이크로프로세서의 클럭 속도 향상에 큰 도움을 주었다. 90년대 중반이 지나서는 PowerPC, POWER, UltraSparc, Alpha 등 대부분의 고성능 CPU와 Arm과 같은 저전력 CPU, 그리고 일부 MCU들까지도 RISC이거나 RISC 구조를 기반으로 하였다. CISC의 대표 주자인 인텔도 RISC 기반 마이크로프로세서 개발에 심혈을 들였는데 그 예로 IA-64[1]와 iAPX 계열 CPU(Intel i960, Intel i860) 등이 있다.

인텔은 인텔 펜티엄 프로에서부터 내부적으로는 CISC 명령어를 RISC 구조의 코드로 변환해서 실행하는 P6 아키텍처로 개편하였다. 또한 인텔보다 한발 앞서서 AMD는 K6에 동일한 설계를 구현하였다. 인텔이 IA-64를 개발뻘짓하는 동안 AMD가 x64 시장의 주도권을 가져갔다.[2] 그래도 완전한 RISC 구조와 비교하면 한계가 있어서, 펜티엄 프로만 해도 파이프라인이 무려 10단계에 이르렀다. 반면 당시 대부분의 RISC CPU는 5단계 혹은 7단계, 많아야 9단계 정도.

기술이 발전하며 CISC와 RISC에 대한 사실도 많이 변화하였다.

CISC와 RISC의 차이 중 하나는 실행 속도라고 배웠을 텐데 RISC 아키텍처 기반 프로세서와 CISC 아키텍처 기반 프로세서의 실행속도는 거의 차이가 나지 않는다. CPU 기술의 발달로 클럭 속도는 전력 소모량과 온도 조절에 달린 문제라 해도 과언이 아니다. 이론상 RISC 프로세서의 클럭속도를 더 높일 수는 있겠지만 CPU의 성능 증가 대비 전력 소모량과 발열 문제가 더 크기에 두 프로세서의 실행속도는 결과적으로 거의 차이가 나지 않는다.

또한 RISC 아키텍처 기반 프로세서의 제작 단가가 더 싸다고 아는 사람들이 많은데 이것은 명백한 오류이다. 설계 및 제작 비용이 비싼 명령어 해석기의 크기를 획기적으로 줄였지만 현대 CPU에서 명령어 해석기가 차지하는 면적은 1% 이하이다. 하지만 RISC 명령어 코드가 메모리 대역폭을 평군적으로 2배 더 잡아 먹기에 같은 성능의 CISC 기반 프로세서에 비해 RISC 기반 프로세서는 2배 더 많은 캐시가 필요하다. 요즘 CPU의 75–80%가 캐시 혹은 레지스터인 것을 감안하여 1% 이하의 회로를 줄이기 위해 80%를 더 추가하는 셈이다. SRAM을 구성하는 셀은 4개의 트랜지스터가 필요한데 32MB의 대용량 캐시를 구성하기 위해서 10억 단위가 나온다. AMD의 8코어 CPU의 트랜지스터 집적 숫자가 60억에 달하는데 이중에 6분의 1이 캐시 메모리에 사용된다는 것이다. 명령어가 많다고 무조건 단가가 비싼 것도 아니고 적다고 싼 것도 아니다. 정확히는 설계 스타일에 따라 달려 있고 RISC도 고성능 지향으로 간다면 설계 면적이 넓어진다.

흔히 CISC와 RISC를 서로 대립되는 포지션으로 취급하는 경우가 많은데 이는 RISC가 등장하게 된 이유나 최근의 CPU 설계 경향 등에 비추어 봤을 경우 적절한 취급이라고 할 수 없다. 우선 상기한 바와 같이 RISC는 CISC에서의 단점을 분석하고 극복하는 연구 과정에서 탄생한 명령어셋으로 명백하게 CISC보다 더 발전된 개념을 포함한 차세대 기술이다. 그렇기 때문에 RISC가 출현한 이후 100% CISC 기술에 기반한 신규 명령어셋은 실질적으로 도태되는 수순을 밟게 되었고 주류 컴퓨터 산업에서는 CISC 아키텍처 기반 프론트엔드에 RISC가 흡수된 형태의 하이브리드를 보여주고 있다. 일반적 PC 프로세서[3]는 모두 CISC x86 아키텍처를 기본으로 하며Acorn RiscPC 600 위에 서술했듯 내부적으로 RISC 명령어 체제를 사용하는 하이브리드이다.

하지만 CPU의 클럭 속도를 더 이상 올리는 한계가 도래한 지금, 명령어 길이가 일정하다는 특징으로 명령어 병렬처리(Out-of-Order 실행)에 엄청난 이득이 발생, Apple의 M1칩이 CISC의 맹주인 Intel과 AMD의 속도를 따라 잡았다. Apple M1칩은 왜 그렇게 빠를까?영어 원문

6. 아키텍처 목록

7. 관련 문서


[1] IA-64가 채택한 EPIC 아키텍처는 VLIW 기반이지만 RISC를 참조하여 만들어졌다.[2] 아이타닉[3] 예를 들어 인텔, AMD