RISC-V
[image]
'''Where the RISC stands for Reduced Instruction Set Computer.'''
1. 개요
2010년부터 미국의 UC 버클리에서 개발중인 새로운 컴퓨터 CPU 구조이다. 리스크 브이가 아니라 "리스크 파이브(risc-five)"라고 발음하며, V는 영문 알파벳 V가 아닌 로마 숫자 '''5'''를 가리킨다.
단지 학술용이나 연구용이 아니라 실제 산업계에서 상용화할 것을 목표로 상업적으로 중요한 장점을 많이 포함하고 있다. 한마디로 현재 스마트폰이나 임베디드 장치의 CPU로 널리 쓰이는 ARM과 직접 경쟁하여 이를 대체할 수 있는 고성능의 자유 CPU 구조를 개발하려는 것이다.
설계된 명령어 집합 구조(ISA)는 버클리 오픈 소스 라이선스로 무료로 쓸 수 있게 개방되었다. 즉, 원작의 정당한 크레딧을 밝히는 조건으로 라이선스비를 지불하지 않고 누구나 자유롭게 호환성 있거나 파생된 CPU를 설계할 수 있고 이를 상용으로 쓰거나 팔 수도 있고 파생된 설계를 공개할 의무도 없다. 공교롭게도 UC 버클리는 이전에 유닉스 운영 체제인 BSD를 개발한 전적이 있는데, 이것 또한 BSD 라이선스로 유사하게 개방하였다.
2. 역사
컴퓨터의 근본 명령어 구조를 간략화하는 "RISC"라는 개념은 1980년대에 대두하였다. RISC 아키텍처의 발전을 주도한 것은 IBM과 UC 버클리로, 이들은 각각 POWER와 PowerPC, 그리고 버클리 RISC로 실현되었으며 버클리 RISC는 1980년대 썬 마이크로시스템즈가 상용화한 SPARC 제품군으로 이어진다.
RISC-V는 2010년에 UC 버클리의 컴퓨터 과학 부서의 연구자들에 의해 결성되었다. UCB 컴퓨터공학과는 1980년대에도 MIPS 컴퓨터구조의 기반이 된 Berkeley RISC 컴퓨터 구조를 성공시킨 바있고 유명한 데이비드 패터슨 교수도 프로젝트에 참여하였다.
2010년부터 연구가 시작되어 현재는 아직 연구 중이라 구조 설계가 완성되려면 좀 더 기다려야 하지만, 실험적으로 실제로 구현된 RISC-V 칩은 상용 ARM 칩과 비교해서 비슷한 성능으로는 칩 면적은 30%~50% 축소되고 소비전력은 60%나 감소하는 등 상당히 높은 효율과 경제성을 보여서 미래에 상용화되면 ARM의 강력한 경쟁자가 될 수 있다는 기대를 받고 있다. 코어 개수가 아주 많은 서버류가 아니고 코어 몇 개 이하의 스마트폰 칩 정도에선 캐시를 뺀 코어의 면적이 크지 않아 칩 면적 축소가 별 큰 이점이 아니지만 소비전력 감소는 매우 효과가 크다. 50% 정도만 되어도 적어도 2-3 단계 6년 이상 앞선 반도체 제조 기술 수준.
RISC-V 연구를 후원하고 있는 기업으로는 구글, 휴렛팩커드, IBM, 오라클, 퀄컴, 마이크로소프트, 엔비디아, AMD 등 CPU 제조 설계분야의 쟁쟁한 기업들이 많다. 특히 만약 구글 안드로이드나 애플 iOS가 RISC-V를 지원하기 시작한다면 현재의 스마트폰 시장에서의 ARM의 독점적 위치를 위협할 수 있게 될 가능성이 높다. 삼성전자는 IoT 시장에서 RISC-V를 AP로 사용할 의사를 비치고 있다. 인디아 등 일부 연구기관에서는 RISC-V ISA를 이용해 슈퍼컴퓨터용의 custom CPU를 개발하고 있다. 슈퍼컴퓨터도 이미 성능의 한계는 CPU의 계산능력보다는 CPU의 냉각능력 문제로 전체 성능이 제한되고 있으므로 RISC-V의 성능에 비해 전력소모가 작은 장점은 슈퍼컴퓨터용으로도 유망하다.
하지만 앞으로 상업적으로 스마트폰 시장에서 성공하려면 공개 CPU 설계만으로는 부족하고 성능이나 소비전력, 칩 면적과 제조 원가 등 실제 경제성에 더 영향이 크고 연구가 부족한 공개 그래픽 하드웨어 코어 (GPU)의 설계가 필요하다. 현재의 ARM의 Mali나 퀄컴의 Adreno, Apple의 PowerVR, 엔비디아의 Pascal 등을 대체할 수 있는 공개된 GPU 설계가 필요하고 GPU 설계보다 더 어렵고 중요한 드라이버 소프트웨어 개발이 필요하다. GPU는 단지 그래픽용 뿐 아니라 GPGPU 등 인공지능 관련기술로도 앞으로 중요도가 크게 높아질 것이다.
2019년 현재상황은 엔비디아나 웨스턴 디지털 등 IT 장비업체들이 그래픽 칩이나 HDD/SSD 제어 등 기존 시스템과 호환성이 필요 없는 내장제어용 CPU로 RISC-V를 채택하는 경우가 늘고 있고 이 분야에 진출하는 소규모 업체들은 늘고 있다. 하지만 아직 이를 이용한 PC나 태블릿 노트북 서버 스마트폰 슈퍼컴퓨터 등 메이저 시스템 응용은 드물다. 현재로는 응용 문턱을 낮추기 위한 다양한 상용 IP, 상용칩, 개발도구와 OS 지원 체계, 응용 정보와 개발경험 등 응용 인프라와 시스템 생태계가 ARM에 비해 절대적으로 부족하므로 근시일 내에 이를 해소하기는 어렵다. 적어도 IT 업계의 손꼽히는 미국 메이저 업체들이 적극적으로 이를 푸시하지 않는 한 빠른 상황개선은 어렵다. 미국의 무역제재로 어려움을 겪은 화웨이 등 중국 업체들이 ARM IP 기술에 대한 의존을 줄이기 위해 RISC-V에 대해 적극적인 태도를 보이고 있다. 특이하게 중국 전자상거래 업체인 알리바바 그룹도 관심을 보이고 있다. 현재로는 가장 고성능의 RISC-V 구현은 알리바바가 발표한 Xuantie 910(64비트 16코어, 12 nm 공정)으로 미국 아마존 클라우드 서비스의 서버용 ARM 칩인 Graviton처럼 알리바바의 클라우드 서비스에 적용될 것으로 보인다.
서버용으로 개발중이지만 무려 1000코어짜리 칩을 개발중이라는 소식이 있다. 아예 기기당 4000코어 이상 개발할 수 있다는 언급이 있다.
2021년 1월에는 안드로이드 10을 RISC-V로 포팅하는 데 성공했다. #
3. 특징
[image]
'''2013년 1월에 공개된 RISC-V 시험용 제품.'''
레지스터는 "'32비트 또는 64비트 일반 레지스터 32개' + '부동소수점 레지스터 32개'". 소규모 하위 구현은 레지스터 수를 16개로 줄이고 부동소수점 레지스터는 생략할 수 있다. 레지스터 0번은 상수 0이어서 R1 + R0 → R2 는 R1 → R2와 같다. 다른 RISC CPU처럼 메모리 접근 전용 명령어를 가진 load-store 구조를 채택하고 있으며 모든 연산조작은 레지스터에서만 한다. 기본적으로 명령어 길이는 32비트지만 코드 밀도를 높여서 상용에 적합하도록 가변길이 명령어를 채택하고, 특히 ARM의 Thumb-2 처럼 대폭 간소화된 16비트 단축 명령어 셋도 있다. 하지만 별도의 단축 명령어 모드가 따로 있는 게 아니라 일반 명령어와 단축 명령어를 자유로이 섞어서 쓸 수 있다. 코드 밀도는 x86이나 MIPS보다는 약 20% 더 효율적이고 Thumb-2보다는 2% 뒤지는 정도.
독특한 특징으로 판단이나 분기를 위한 상태 코드가 없다. 그 대신 비교 후 조건부 점프가 이를 대신한다. 상태코드를 통한 명령어 간의 순서 의존성이 줄어들어 비순차적 실행(out-of-order execution)의 효율을 올릴 수 있다. 그리나 지연 분기 슬롯도 없는 등 기능이 많이 생략되어 있다. 복잡한 어드레싱 모드 등이 없는 대신 위치무관코드를 위한 기능이 있다. 멀티미디어나 신호처리에도 응용할 수 있는 기능도 있다.
시스템 특권 모드는 4단계이며 스레드나 인터럽트를 유연하게 다룰 수 있게 되어 있다. 멀티미디어 등 고속 수치 계산을 위한 MMX류의 SIMD 벡터 연산이나 디버깅용 JTAG 하드웨어 등 현대의 스마트폰이나 PC, 서버, 슈퍼컴퓨터 등 광범위한 응용에 적합한 기능을 가지고 있다. 상당히 유연한 구조를 가지고 있어서 미래의 다양한 응용을 위한 충분한 여유가 확보되어 있기도 하고 저전력 소규모 임베디드 응용 등을 위해 최소한의 기능을 가진 CPU를 만들거나 CPU 가상화를 지원하고 있다.
소프트웨어 측면에선 gcc나 LLVM 등 사용자 수준의 툴체인은 완비되어 있지만 아직은 시스템 특권 모드가 확정되지 않아 개발 중이므로 운영체계 지원은 실험적 수준에 머물러 있다. MMX 같은 SIMD 벡터 명령어 세트도 아직은 개발 중으로 확정되어 있지 않다.
4. 단점
아직 개발중이지만 개발중이라는 이유로 인한 단점도 엄연히 존재한다.
- 아직 연구중이라는 상태인것만으로도 큰 단점이 될 수 있다. 겨우 2010년부터 개발하기 시작한게 바로 RISC-V이며 아무리 대기업들이 투자 및 후원을 해준다고 해도 갈길이 멀다는 점으로 인해 과연 발표대로 나올 수 있을까에 대한 의구심이 생길 수 밖에 없다. 당장 나온지 오래된 ARM조차 컴퓨터 및 서버쪽으로 확장하지 못해서 시장이 고정되어 있다는 단점이 있고[1] Apple Silicon으로 인해 ARM기반 컴퓨터에 관심을 가지기 시작했음에도 불구하고 이주 난이도가 한참 높다는 것이 대놓고 증명해주고 있다.[2] 스마트폰 시장조차 등장한지 10년정도밖에 안된다. 저전력이란 장점을 가진 ARM조차 여러 회사들이 무작정 넘어가질 못하는데 개발중인 RISC-V라면 굳이 더 말할 필요가 없는 상황이다. 컴퓨터는 AMD64, 임베드 및 스마트폰은 ARM으로 이미 시장이 형성되어 있고 아키텍쳐를 바꾸라는건 굉장히 어려운 일이다. 이미 해당 시장을 특정회사 및 아키텍쳐가 선점하고 있기 때문에 무작정 바꿀 수 있는건 아니며 엄청난 노력, 시간, 그리고 돈이 필요한데 유연하게 아키텍쳐를 바꿀 수 있는 애플외엔 가능할련지 의문이다. 오래된 ARM조차 이제서야 컴퓨터쪽으로도 천천히 확장하기 시작했는데 후발주자인 RISC-V는 갈길이 험하고 이마저도 이미 ARM이나 AMD64가 선점한 시장을 어떻게 들어갈건지가 큰 문제일 수 밖에 없다. 애플처럼 개발환경을 모두 통제하고 스스로 하드웨어와 소프트웨어를 개발하지 않는 이상 아키텍쳐를 바꾸기란 상상 이상의 어려움을 보여준다.[3] AMD64을 버리고 ARM으로 컴퓨터를 만드는 애플도 그나마 ARM 진영에서 압도적인 개발 및 설계력을 가지고 뛰어든거지 타회사들은 굉장히 열세라서 따라가기도 벅찬 상태다. 또한 운영체제도 아키텍쳐에 따라 바꿔야하는데 이것도 굉장히 어렵다. Microsoft는 레거시 호환성 때문에 ARM기반 윈도우를 죄다 에뮬로 구현할 수 밖에 없었을 정도다. 완전히 기존 윈도우를 버리고 ARM으로 옮겨가자니 모든 호환성을 죄다 버려야하는 순간 자신들이 소유한 큰 시장을 스스로 잃는 짓을 하는것과 다름없고 절때로 쉽지 않다. 즉, 현실과 이상이 다른것은 엄연히 사실이다. ARM의 강점이 있어도 주저하거나 관심조차 안보이는게 컴퓨터 시장인데 그나마 애플이 M1칩을 통해 큰 임팩트를 보이니깐 그제서야 관심을 가지는 수준이다. 이마저도 ARM의 단점들로 인해 가능할련지도 모르는 일이라는 건 덤. 괜히 대부분이 AMD64를 계속 쓰는것이 아니며 새로운 기술이 등장한다고 곧바로 쓰이기 힘든게 현실이기에 지금 나온다고 해도 이미 선점하고 있는 AMD64와 ARM이랑 경쟁해야하는데 완전히 새로운 아키텍처라 기반부터 매우 부족한 상태이니... RISC-V 개발자들이 걱정하는 부분중 하나로 이렇다할 시장을 선점하지 못하면 아무리 스펙과 성능이 뛰어나도 사용되지 못할 수 있다. 이 때문인지 RISC-V는 컴퓨터와 스마트폰외 제품에서 성공할 수 있다는 언급이 있을정도로 자칫 POWER처럼 특정 시장에서만 특화되어서 나올 가능성이 있다.[4]
- ARM처럼 파편화가 심하다. RISC-V 개발자들이 인정한 사실이고 그때문에 규격을 하나로 통일하여 개발중이라고 한다. 하지만 이미 ARM조차 파편화로 인해 여러 문제들이 발생하고 있다는 점으로 인해 결코 쉽지 않을걸로 보인다. 당장 안드로이드만 해도 하드웨어 및 소프트웨어 파편화에 시달리고 있다는 점이다. 애플처럼 완전히 폐쇄적이고 모든걸 애플이 컨트롤하는 환경이 아닌 이상 파편화는 어쩔 수 없는 문제이다. 물론 AMD64도 엄연히 파편화가 존재하지만 ARM처럼 심각한 수준은 아니며 라이너스 토발즈가 언급한 단점중 하나이기에... 현재로썬 RISC-V의 가장 큰 단점이자 도전 그 자체라고 하니 지켜봐야할듯 하다.
5. 리눅스 지원
리눅스가 지원된다고 한다. 나중에는 리눅스 커널을 쓰는 안드로이드 스마트폰에 올라가는 모습을 볼 수도 있을 것이다.
Design News Article: Linux Now Has its First Open Source RISC-V Processor (OCTOBER 6, 2017)
SIFIVE INTRODUCES RISC-V LINUX-CAPABLE MULTICORE PROCESSOR (February 3, 2018)
SiFive Launches World’s First Linux-Capable RISC-V Based SoC (Feb. 7, 2018)
6. 새로운 칩 설계에 사용
리눅스나 BSD의 소스 코드를 가지고 자신의 목적에 맞는 안드로이드나 iOS 등을 만든 것처럼 RISC-V를 특정 목적에 특화된 칩을 설계하는 기반으로 사용할 수 있다. USING OPEN SOURCE DESIGNS TO CREATE MORE SPECIALIZED CHIPS (2018.04.12)
7. 연관 제품
- ARM Cortex-A 시리즈
- DEC Alpha
- 썬/오라클 SPARC
[1] 그래봤자 사용되는 시장은 굉장히 많다.[2] 애플외엔 이주까지 생각하는 회사는 전혀 없다.[3] 즉, 애플처럼 모든걸 통제하고 굉장히 폐쇄적인 회사가 아닌 이상 불가능하다는 얘기다. 가능하더라도 호환성을 모두 버려야한다는 심각한 단점도 있고 이건 애플마저 어쩔 수 없는 부분이다.[4] 물론 RISC-V가 오픈소스고 용도에 따라 마음대로 바꿀 수 있다는걸 장점으로 내세우고 있어서 개발이 끝나봐야 알 수 있다.