RISC-V

RISC-V("리스크 파이브"로 발음)는 축소 명령어 집합 컴퓨터(RISC) 기반의 개방형 명령어 집합(ISA)이다.

대부분의 ISA와 달리 RISC-V ISA는 어떠한 목적으로는 자유로이 사용할 수 있으며, 누구든지 RISC-V 칩과 소프트웨어를 설계, 제조, 판매할 수 있게 허가되어 있다. 최초의 개방형 ISA는 아니지만 웨어하우스 규모의 클라우드 컴퓨터, 고성능 휴대 전화, 초소형 임베디드 시스템에 이르는 현대의 산술 장치에 유용하게 쓰일 수 있게 설계되어 있다. 이러한 이용에 근거하여 설계자들은 성능과 전력 효율성을 둘 다 고려하였다. 명령어 집합은 또한 지원 소프트웨어의 실질적인 부분을 포함하고 있어서 새로운 명령어 집합의 일반적인 약점을 보완한다.

이 프로젝트는 캘리포니아 대학교 버클리에서 2010년에 시작되었으나 수많은 기여자들은 자발적인 봉사자들이자 대학 밖의 산업 노동자들이다.

RISC-V ISA는 실생활의 소형, 고속, 저전력 구현체를 염두에 두고 설계되었으나, 특정 마이크로아키텍처 스타일을 따르지는 않았다.

2017년 5월 기준으로 버전 2.2의 유저스페이스 ISA가 픽스되어 있으며 privileged ISA는 초안판 1.10으로 이용이 가능하다.

중요성 
RISC-V의 개발자들은 BSD 허가서 하에서 자유롭게 사용할 수 있는 여러 CPU 디자인을 제공하는 것을 목표로 하였다. 이러한 라이선스들은 RISC-V 칩 디자인과 같은 파생작들이 RISC-V 그 자체와 비슷하게 오픈·자유를 따르거나, 클로즈드·사유를 따를 수 있게 하고 있다.

이와 반대로, ARM 홀딩스와 MIPS 테크놀로지스와 같은 상업적인 칩 벤더들은 자신들의 특허 사용에 대한 상당한 라이선스 비용을 부과한다. 이들은 또한 설계적 장점과 명령어 집합을 기술하는 문서를 출시하기 전에 비공개 계약(NDA)을 요구한다. 수많은 설계적 개선사항들이 완전히 사유이며, 심지어는 고객을 대상으로 설명하지 않는다. 이러한 기밀은 공공의 교육적인 이용, 보안 감사, 공공의 낮은 비용의 자유-오픈 소스 소프트웨어 컴파일러, 운영 체제의 개발을 막아버린다.

CPU를 개발하는 것은 여러 전문분야의 설계적 전문 지식이 필요하다: 전자 논리, 컴파일러, 운영 체제. 전문 엔지니어링 팀 밖에서는 이러한 정보를 찾기가 어렵다. 그 결과로 현대의 고품질의 범용 목적의 컴퓨터 명령어 집합들이 최근까지도 학술적 환경을 제외하고는 어디에서도 사용할 수도 없고 설명되지도 않았다. 이러한 이유로 수많은 RISC-V 기여자들은 이를 통합된 공동체의 노고로 간주한다. 수많은 기여자들의 이러한 요구는 RISC-V가 수많은 용도에 맞게 엔지니어링된 이유 중 하나이다.

RISC-V 개발자들은 또한 실리콘과 시뮬레이션의 설계를 검증하는 것에서 실질적인 연구 및 사용자 경험을 갖추고 있다. RISC-V ISA는 일련의 학술적 컴퓨터 설계 프로젝트의 직접적인 개발품이다. 부분적으로는 이러한 프로젝트들을 지원하기 위해 시작되었다.

역사

선구자 
"RISC"라는 용어는 약 1980년으로 거슬러 올라간다. 이 이전에 더 단순한 컴퓨터가 더 효율적이라는 이야기는 있었지만 설계적 원칙은 널리 설명되지 않은 상태였다. 단순한 효율적인 컴퓨터는 늘 학술적 관심의 대상이 되고 있다.

여러 학교들에서 1990년에 Computer Architecture: A Quantitative Approach의 제1판을 위해 RISC 명령어 집합 DLX를 개발하였다. 데이비드 패터슨이 저자였으며 나중에 RISC-V를 지원하였다. 그러나 DLX는 교육용이었다. 학계와 취미연구가들은 FPGA를 사용하여 이를 구현하였으나 상업적인 성공을 이루지는 못했다.

버전 2 이하의 ARM CPU들은 퍼블릭 도메인의 명령어 집합을 갖추었으며 인기있는 자유 소프트웨어 컴파일러의 하나인 GCC에 의해 지금도 지원된다. 이로써 ARM 아키텍처의 수용을 가속화시켰다. 3개의 오픈 소스 코어가 이 ISA를 위해 존재하지만 제조된 적은 없다.

OpenRISC는 DLX 기반의 오픈 소스 ISA이며, RISC 디자인을 따른다. GCC와 리눅스 구현체를 완전히 지원한다. 그러나 일부 상용 구현체가 존재한다.

재단 
버클리의 캘리포니아 대학교 Krste Asanović는 오픈 소스 컴퓨터 시스템의 여러 가지 이용을 발견하였다. 2010년에 그는 여름 동안 짧은 3개월 프로젝트에서 개발 및 출판을 결심하였다. 이러한 계획은 학술 부문과 산업 부문의사용자들을 둘 다 지원하기 위한 것이다. 버클리의 데이비드 패터슨은 또한 이 노고를 도왔다. 패터슨은 처음에 버클리 RISC의 속성들을 식별하였으며, RISC-V는 기나긴 일련의 협업 RISC 연구 프로젝트들 가운데 하나이다. 초기 자금 제공은 DARPA에 의해 이루어졌다.

RISC-V 재단을 지원하는 단체들로는 이를테면 다음과 같다: 구글, 마이크로소프트, 엔비디아, 오라클, 퀄컴, IBM, 화웨이, 휴렛 팩커드 엔터프라이즈 (HPE), 인도 공과대학교 마드라스, 어드밴스트 마이크로 디바이시스, BAE 시스템스, Berkeley Architecture Research, Bluespec, Inc., Cortus, Draper, ICT, 래티스 세미컨덕터, Mellanox Technologies, Microsemi, 마이크론, NXP반도체, Rambus Cryptography Research, 웨스턴 디지털, 삼성전자.

수상 
 2017: The Linley Group's Analyst's Choice Award for Best Technology (명령어 집합에 대해)

설계

명령어 하위 집합 
RISC-V 명령어 중 최소한의 필수적인 집합은 정수 명령어 집합이다. (문자 "I"로 표시) 이 집합은 자체적으로 범용 컴파일러를 포함하여 완전한 소프트웨어 지원과 더불어 단순화된 범용 컴퓨터를 구현할 수 있다.

컴퓨터 설계는 추가적인 하위 집합을 추가할 수 있다: 정수 곱하기 및 나누기 (집합 "M"), 실시간 동시성 처리를 위한 원자적 명령어 (
"A"), 배정밀도("D")와 4배 정밀도("Q") 옵션이 있는 IEEE 부동소수점 ("F"). "privileged" 명령어 집합은 유닉스 계열 운영 체제의 지원을 위한 명령어들을 정의한다. 가상화 지원을 위해 하이퍼바이저를 지원할 예정이다.
이러한 명령어 집합 "RVIMAFD"을 갖춘 컴퓨터를 "범용"(general-purpose)이라 부르며 간단히 "G"로 축약한다.

코드 크기(집합 "C")를 줄이는 선택적인 "compact" 하위 집합이 있다. 수많은 RISC-V 컴퓨터들은 이 ISA를 추가하여 전력, 코드 크기, 메모리를 줄일 수 있다. 16개의 레지스터만 지원하여 가장 작은 CPU들에 대한 비용을 줄이는 32비트 임베디드 하위 집합("E")도 있다.

이러한 집합들은 32비트, 64비트와 같은 레지스터의 크기에 따라 추가적으로 기술된다. 각기 다른 레지스터 크기에 대한 각각의 하위 집합의 차이는 크지 않다.

임베디드 시스템용 소형 32비트 컴퓨터는 "RV32EC"일 수 있다. 대형 64비트 컴퓨터는 "RV64G"일 수 있다.

하위 집합은 128비트 컴퓨터, 비트 조작("B"), 10진 부동소수점("L"), Packed SIMD(예: budget multimedia, "P"), 벡터 처리("V"), 트랜잭셔널 메모리("T")도 계획되어 있다.

같이 보기 
 OpenRISC: GNU 일반 공중 사용 허가서로 라이선스됨.
 축소 명령어 집합 컴퓨터
 오픈 소스 컴퓨팅 하드웨어

각주

추가 문헌 
 The RISC-V Instruction Set Manual
 Instruction Sets Should Be Free: The Case For RISC-V Whitepaper by Krste Asanović and David A. Patterson
 The RISC-V Instruction Set  HotChips 25 (2013)
 The RISC-V Software Ecosystem HPCA 2015, Tutorial
 Rocket Chip HPCA 2015, Tutorial
 The RISC-V Compressed Instruction Set Manual Version 1.9 (draft)

외부 링크 
 
 
 
 Pulpino: A developed, open-source system-on-chip based on RISC-V, 4 August 2016
 
 
 
 

2010년 소프트웨어
마이크로프로세서
명령어 집합 구조
마이크로컨트롤러