RISC-V

리스크 브이가 아니라 "risk-five" 로마숫자 5 이다. 미국의 UC 버클리대학에서 개발중인 새로운 컴퓨터 CPU 구조(architecture)이다. UCB 컴퓨터공학과는 1980년대에도 MIPS 컴퓨터구조의 기반이 된 Berkeley RISC 컴퓨터구조를 성공시킨 바있고 유명한 데이비드 패터슨 교수도 프로젝트에 참여하였다. 단지 학술용이나 연구용이 아니라 실제 산업계에서 상용화할 것을 목표로 상업적으로 중요한 장점을 많이 포함하고 있다. 한마디로 현재 스마트폰이나 엠베디드 장치의 CPU로 널리 쓰이는 ARM(CPU)와 직접 경쟁하여 이를 대체할 수 있는 고성능의 무료 CPU 구조를 개발하려는 것.

설계된 인스트럭션 레벨 구조(ISA)는 버클리 오픈소스 라이센스로 무료로 쓸 수 있게 개방되었다. 즉 원작의 정당한 크레딧을 밝히는 조건으로 라이센스비를 지불하지 않고 누구나 자유로이 호환성있거나 파생된 CPU를 설계할 수 있고 이를 상용으로 쓰거나 팔 수도 있고 파생된 설계를 공개할 의무도 없다. 말하자면 BSD Unix의 CPU 하드웨어 판.

2010년부터 연구가 시작되어 현재는 아직 연구중이라 구조 설계가 완성되려면 좀더 기다려야 하지만 실험적으로 실제로 구현된 RISC-V 칩은 상용 ARM 칩과 비교해서 비슷한 성능으로는 칩 면적은 30%~50 % 축소되고 소비전력은 60% 나 감소하는 등 상당히 높은 효율과 경제성을 보여서 미래에 상용화되면 ARM의 강력한 경쟁자가 될 수있다는 기대를 받고있다.[1] RISC-V연구를 후원하고 있는 기업으로는 구글, HP, IBM, 오러클, 퀄컴, 마이크로소프트, NVidia, AMD 등 CPU 제조 설계분야의 쟁쟁한 기업들이 많다.

하지만 앞으로 상업적으로 성공하려면 공개 CPU 설계만으로는 부족하고 성능이나 소비전력, 칩 면적과 제조 원가 등 실제 경제성에 더 영향이 크고 연구가 부족한 공개 그래픽 하드웨어 코어 (GPU)의 설계가 필요하다. 현재의 ARM 의 Mali 나 퀄컴의 Adreno, Apple의 PowerVR, nVidia의 Pascal 등을 대체할 수 있는 공개된 GPU설계가 필요하고 GPU 설계보다 더 어렵고 중요한 드라이버 소프트웨어 개발이 필요하다. GPU는 단지 그래픽용 뿐 아니라 GPGPU 등 인공지능 관련기술로도 앞으로 중요도가 크게 높아질 것이다.

특징

레지스터는 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 벡터 계산 이나 디버깅용 J-TAG 하드웨어 등 현대의 스마트폰이나 PC, 서버, 수퍼컴퓨터 등 광범위한 응용에 적합한 기능을 가지고 있다. 상당히 유연한 구조를 가지고 있어서 미래의 다양한 응용을 위한 충분한 여유가 확보되어 있기도 하고 저전력 소규모 엠베디드 응용 등을 위해 최소한의 기능을 가진 CPU를 만들거나 CPU 가상화를 지원하고 있다.

소프트웨어 측면에선 gcc나 LLVM 등 사용자 수준의 툴체인은 완비되어 있지만 아직은 시스템 특권 모드가 확정되지 않아 개발중이므로 운영체계 지원은 실험적 수준에 머물러 있다.
  1. 코어 갯수가 아주 많은 서버류가 아니고 코어 몇개 이하의 스마트폰 칩 정도에선 캐쉬를 뺀 코어의 면적이 크지 않아 칩 면적 축소가 별 큰 이점이 아니지만 소비전력 감소는 매우 효과가 크다. 50% 정도만 되어어 적어도 2-3 단계 6년 이상 앞선 반도체 제조 기술 수준.