RISC
RISC는 모든 명령어의 길이(bit 수)를 일정하게 다듬는 CPU 명령어셋 설계방식이다. CISC 구조와 대비되어 단순한 구조를 추구한다.
역사[편집 | 원본 편집]
RISC의 탄생과 고성능 지향 RISC 아키텍처의 역사[편집 | 원본 편집]
위키백과의 RISC 문서에 따르면 CPU의 명령어 스트리밍 방식을 구분하는 플린 분류를 제창한 마이클 J. 플린이 본 최초의 RISC 기반 CPU는 1975~1980년 사이 개발된 실험적인 CPU인 IBM 810이다. IBM은 이 CPU의 구조를 지속적으로 발전시켜 1990년 최초의 IBM POWER CPU 시리즈를 개발하였다.
한편 데이비드 페터슨을 주축으로 미국 UC버클리 공학대학 연구진이 만든 버클리 RISC도 있었으며, 이 CPU는 RISC의 원칙을 POWER보다 먼저 정립하였다. 버클리 RISC는 1세대 RISC-I과 2세대 RISC-II까지 진화하였으며, 그 이후 여기에 영감을 받아 1987년 썬 마이크로시스템즈가 최초의 상업용 RISC 아키텍처 CPU인 SPARC을 출시하여, IBM POWER와 함께 고성능 RISC 아키텍처의 양대산맥을 이루었다. 그 외에도 DEC의 Alpha 시리즈와 HP의 PA-RISC 같은 1세대 서버/워크스테이션용 RISC CPU가 있었다.
물론 현재 썬 마이크로시스템즈가 오라클에 인수된 이후 SPARC은 대가 끊겼으며[1], PA-RISC는 단종되고 인텔 아이태니엄이 부분 계승하면서 HP의 망조를 부르는 대참사를 야기했고, DEC 역시 망했다. 유일하게 살아남은 것이 POWER인데, AMD64 기반 서버 CPU가 등장하며 완전히 비주류로 밀린지 오래며, 후술할 ARM의 Neoverse 시리즈가 이 시장에 진입하면서 1세대 고성능 RISC 아키텍처들은 전부 몰락한 상황이다.
저전력 고효율 RISC 아키텍처의 역사[편집 | 원본 편집]
이쪽 방면에서 먼저 두각을 보인 건 MIPS라는 RISC 아키텍처 CPU다. MIPS Technologies가 창립된 후 초기에는 실리콘 그래픽스 같은 워크스테이션에 어필하여 고성능을 지향하다가, Imagenation Technologies라는 회사에 인수된 후 ARM과 임베디드 분야에서 경쟁하였는데, 스마트폰 시대에 ARM 프로세서가 인기를 끌면서 완전히 퇴물이 되었다. 그래도 구조가 간단한 편이라 RISC 개념에 대한 컴퓨터과학 강의 용도로는 유용한지 MIPS는 컴퓨터과학과 전공교재에 등장하는 경우가 많다. 현재는 Imagenatiion Technologies가 중국계 사모펀드에 넘어가면서 중국 쪽 하드웨어 회사들 위주로 MIPS를 채용하는 추세다.
그 다음 영국의 아콘 컴퓨터, 애플[2], VLSI 테크놀로지의 합작 회사로 탄생한 Arm Holdings가 있다. ARM 시리즈 역시 초기에는 PDA 전용 프로세서들을 디자인하며 임베디드 시장에서 MIPS랑 경쟁하였고, 스마트폰 시대가 열리면서 승기를 잡아 Cortex 시리즈로 디자인을 분화하여 높은 성능의 프로세서를 설계하는 등 잘 나가고 있다. 심지어 ARM은 서버 컴퓨터용 Neoverse 시리즈를 설계하면서 AMD64와 POWER의 영역도 갉아먹고 있다.
한편 오픈 소스 프로젝트로 데이비드 페터슨 같은 버클리 RISC 설계진 및 몇몇 하드웨어 회사들을 주축으로 RISC-V라는 CPU 아키텍처가 등장한다. SPARC의 오픈 소스 장점과 ARM의 저전력 특성을 혼합하였는데, 현재는 마이크로컨트롤러용으로 소량 도입되는 정도로 사용되고 있다.
특징[편집 | 원본 편집]
- 명령어가 단순하고 명령어의 유형이 몇 가지로 정해져 있으며 일정한 비트 길이를 가지기 때문에 디코더가 크게 단순화된다. 그리고 컴파일러 등의 소프트웨어 최적화도 쉬워진다. 다만 비트 단위로 구분 가능한 무의미한 비트 신호 대비 유효 신호인 코드 밀도가 낮아진다. 그래서 복잡한 명령어를 수행할 때 CISC에 비해 RISC CPU가 더 많은 명령을 처리하게 된다. 그래서 RISC CPU들은 CISC 대비 높은 처리 속도를 달성하여 이를 상쇄하는 경향이 있었으며, 메인 메모리 부족에 시달리는 임베디드 기기에서 x86 같은 일부 CISC 명령어셋이 아직도 쓰이는 이유다.
- 다만 RISC도 ARM의 Thumb 명령어셋처럼 bit 수를 충분히 줄인 경우에는 코드 밀도가 높은 편이다. 이제 임베디드 시스템에서는 CISC CPU를 코드 밀도를 보고 쓰기보다는 개발 환경 등 소프트웨어 생태계를 보고 쓰는 경우가 많다. 그마저도 ARM Cortex-M0이 상당히 시장 점유율을 빼앗았다.
- 명령어 차원에서 특정 bit에 플래그 형식으로 레지스터를 지정하기 때문에 명령어 해석 도중에 해당 레지스터의 내용을 알 수 있다. 이는 CISC ISA에 억지로 파이프라인 구조를 적용하는 것보다 효율적이다. 그러면서 CPU에서 바로 사용할 데이터를 담는 Geneal Purpose Register 특성 덕에 레지스터 할당이 CISC 구조와 달리 유연하다.
- 메모리 내용을 조작하는 load/store 명령어와 레지스터 간 데이터 연산/복사인 move 기능을 분리하여 효율적인 메모리 접근이 가능하다. 이는 폰 노이만 구조의 개선판인 하버드 구조의 적용을 쉽게 만든다.
- 프로그램 카운터 값을 고치는 분기 명령어가 갈 수 있는 메모리 범위에 제약이 심하다. Immediate Value의 비트 수가 특정 크기 이상 되지 못하도록 고정되기 때문이다. CISC의 경우 그냥 원하는 만큼의 명령어 bit 수를 늘려 메모리 공간을 자유자재로 점프할 수 있는 것과 대조적이다. 이 때문에 미리 예약한 빈 명령어를 추가 정의하는 수준이 아니라 특정 비트가 가리키는 명령어를 바꾸어 아키텍처를 갈아 치우면 무조건 레거시 애플리케이션을 에뮬레이션으로 돌려야 한다. 이 단점을 극복한 플랫폼 사례는 현재까지 Rosetta 에뮬레이션과 유니버설 바이너리 기술로 PowerPC -> x86/AMD64 -> ARM의 삼단 변신을 성공시킨 애플의 매킨토시 컴퓨터 뿐이다.
현황[편집 | 원본 편집]
그 전까지 고성능 RISC는 일반인이 볼 일이 없었고, 저전력 RISC CPU는 성능이 너무 끔찍했기 때문에 일반인이 사용하는 고성능 기기(데스크탑 및 노트북 PC)에서 RISC가 쓰이는 상황을 상상하기 힘들었다. 그러나 스마트폰과 함께 등장한 ARM Cortex 시리즈가 그런 고정관념을 타파하기 시작했고, Apple의 M1 칩 및 ARM Cortex-X 시리즈의 등장으로 이제야 RISC CPU가 CISC 대비 동일 명령어 처리 조건에서는 더 빠를 수도 있다는 인식이 자리 잡았다.
그러나 아직 이를 뒷받침할 소프트웨어 생태계가 빈약하고 CISC 구조 CPU의 대표자인 인텔 x86 아키텍처가 CISC와 RISC 구조의 하이브리드로 진화하면서 RISC 명령어 세트에 의해 CISC 명령어 세트가 완전히 도태될 가능성에는 회의적인 여론이 아직 다수이다. 일반인이 사용할 만한 고성능을 요구하는 소프트웨어는 RISC 아키텍처 CPU를 사용한 제품에 거의 없기 때문이다. 대표적인 것이 키보드/마우스를 사용하여 플레이하는 비디오 게임과 3D 디자인 소프트웨어다. 이게 문제가 되는 이유로 ARM64와 상성이 맞는 일반 사용자용 고성능 GPU의 부재가 먼저 꼽힌다. AMD64 쪽 CPU는 고성능 GPU의 장착이 가능한 환경에 쓰이는 경우가 다수지만, ARM 기반 PC에서 그런 사례가 나오지 않아 범용성을 갉아먹는 문제가 되고 있다. 그러나 여기에 가장 큰 관여를 할 수 있는 NVIDIA는 아직 자사의 GPU를 Neoverse 시리즈에서만 사용 가능하도록 지원하고 지포스를 ARM 기반 PC 제품에 붙일 수 있도록 지원하지 않으며, ARM CPU 쪽에서도 그래픽 카드를 꽂아도 문제가 없을 만큼 PCI Express를 16레인 이상 지원하는 제품이 사실상 없다.
간단한 사무용 프로그램(워드프로세서 등)은 마이크로소프트가 오피스 365 및 ARM 윈도우용 오피스 프로그램을 내놓는 등의 작업으로 상당수 해결되었지만, AMD64 진영에 아직 훨씬 많은 소프트웨어가 남아 있기에 아직 본격적으로 고성능 ARM 제품을 일반인이 사용하기 어려운 편이다. 하드웨어 측면에서는 확실한 경쟁 플랫폼이 되었으나 매킨토시 및 iOS의 백업을 받는 Apple Silicon의 CPU를 제외한 PC용 스냅드래곤 시리즈나 미디어텍 디멘시티 등은 탑재 기기들이 AMD64 탑재 PC만큼의 범용성을 보이지 못한다.
특히 한국은 공공기관/금융권 보안 프로그램의 존재로 인해 스마트폰/태블릿이 아닌 윈도우 사용 ARM 사용 고성능 IT 기기를 사용하기 대단히 어려운 상황이다. 사실 이건 크롬북의 보급을 막는 걸림돌이기도 하며, 한국 IT업계의 고질병으로 지목되는 심각한 문제지만, 단기간에 해결될 가능성이 없다.
도보시오[편집 | 원본 편집]
- ↑ 그나마 망하기 전 나온 오픈 소스 프로젝트 중 하나인 LEON은 아직 생산 중이긴 하다.
- ↑ 매킨토시와 아이폰/아이패드로 유명한 그 회사 맞다. 창립 때부터 관심을 가지고 투자했으며, 뉴턴 메세지 패드라는 1세대 PDA/태블릿 제품에다 ARM610 프로세서를 채용했었다. 뉴턴 메세지 패드의 실패 경험이 아이패드/아이폰의 밑바탕이 되었다는 점을 생각하면 애플은 현재 ARM 진영에 있는 가장 오래된 하드웨어 서드 파티 회사인 셈. 레퍼런스 디자인에 의존하다가 작은 스타트업 인수해서 애플 실리콘으로 전환한 뒤 나온 애플 A시리즈/M시리즈 AP들이 빨리 자리를 잡은 것도 이런 경험에서 나왔다고 봐야 한다.