RISC-V

RISC-V
RISC-V
디자이너캘리포니아 대학교 버클리
비트32, 64, 128
소개했다2015년; 8년전 (2015년)
버전
  • 소외 ISA 20191213,[1]
  • 특권 ISA 20211203[2]
설계.RISC
유형적재함
인코딩변수
분기비교 및 분기
엔디안니스리틀[1]: 9 [a]
페이지크기4 KiB
확장자
  • M: 곱셈
  • A: 아토믹스 – LR/SC & 페치 앤 옵
  • F: 부동 소수점 (32비트)
  • D: 더블(64비트)
  • Q: 쿼드(128비트)
  • Zicr : 제어 및 상태 레지스터 지원
  • 지펜스아이 : 적재/매장용 펜스
  • C: 압축 명령어 (16비트)
  • J: 통역 또는 JIT 컴파일 언어 지원
열다.예, 로열티 무료
레지스터
범용
  • 16
  • 32
(항상 0인 레지스터 1개 포함)
부동점
  • 32
(선택사항).폭은 사용 가능한 확장에 따라 다름)

RISC-V[b](Risk-five로 발음)[1]: 1 는 RISC(Reduced Instruction Set Computer) 원칙에 기반한 개방형 표준 명령어 세트 아키텍처(ISA)입니다.대부분의 다른 ISA 설계와 달리 RISC-V는 로열티가 없는 오픈 소스 라이센스로 제공됩니다.많은 기업이 RISC-V 하드웨어를 제공하거나 발표했습니다. RISC-V를 지원하는 오픈 소스 운영 체제를 사용할 수 있으며, 명령어 세트는 여러 인기 있는 소프트웨어 툴 체인에서 지원됩니다.

RISC-V ISA는 RISC 아키텍처로서 로드 스토어 아키텍처입니다.부동 소수점 명령어는 IEEE 754 부동 소수점을 사용합니다.RISC-V ISA의 주목할 만한 기능은 CPU에서 멀티플렉서의 사용을 단순화하기 위해 선택된 명령어 비트 필드 위치,[1]: 17 구조적으로 중립적인 설계, 그리고 부호 확장 속도를 높이기 위해 즉시 값의 부호 비트를 위한 고정된 위치를 포함합니다.[1]: 17

명령어 세트는 다양한 용도로 설계되었습니다.기본 명령어 세트는 32비트 자연 정렬 명령어의 고정 길이를 가지며, ISA는 각 명령어가 16비트 소포의 길이를 얼마든지 가질 수 있는 가변 길이 확장을 지원합니다.[1]: 7–10 서브셋은 소형 임베디드 시스템, 개인용 컴퓨터, 벡터 프로세서가 탑재된 슈퍼 컴퓨터, 창고 규모의 19인치 랙 장착 병렬 컴퓨터를 지원합니다.

명령어 집합 규격은 32비트 및 64비트 주소 공간 변형을 정의합니다.이 사양에는 128비트 플랫 주소 공간 변형에 대한 설명이 포함되어 있는데, 32비트와 64비트 변형에 대한 외삽으로 설명되어 있습니다. 하지만 128비트 ISA는 의도적으로 "냉동되지 않은" 상태를 유지하고 있는데, 이는 그러한 대용량 메모리 시스템에 대한 실제적인 경험이 아직 거의 없기 때문입니다.[1]: 41

일반적으로 설명의 단순성에만 최적화된 다른 학술적 설계와는 달리, 설계자들은 RISC-V 명령어 세트를 실용적인 컴퓨터에 사용할 수 있도록 의도했습니다.2019년 6월 현재 사용자 공간 ISA[4] 2.2 버전과 권한 ISA[2] 1.11 버전이 동결되어 소프트웨어 및 하드웨어 개발이 진행될 수 있습니다.사용자 공간 ISA는 버전 20191213으로 업데이트, 비준 및 동결되었습니다.[1]외부 디버그 사양은 초안 버전 0.13.2로 제공됩니다.[5]

이 프로젝트는 캘리포니아 대학교 버클리 캠퍼스에서 2010년에 시작되었지만, 현재 많은 기여자들이 대학에 소속되어 있지 않은 자원봉사자들입니다.[6]70개국 이상의 회원국이 RISC-V 공개 사양을 정의하기 위해 기여하고 협력하는 RISC-V International은 현재 정치적으로 중립적인 스위스에 본사를 두고 있습니다.[7][8]

근거

RISC-V 프로세서 프로토타입, 2013년 1월

CPU 설계에는 전자 디지털 로직, 컴파일러운영 체제와 같은 여러 전문 분야의 설계 전문 지식이 필요합니다.Arm Ltd.MIPS Technologies와 같은 프로세서 지적 재산권(IP)의 상업적 공급업체는 이러한 팀의 비용을 충당하기 위해 디자인, 특허저작권 사용에 대한 로열티를 부과합니다.[9][10][11]또한 설계의 세부 이점을 설명하는 문서를 공개하기 전에 비공개 합의를 요구하는 경우도 많습니다.많은 경우 설계 선택의 이유를 설명하지 않습니다.

RISC-V는 오픈 소스화되고 학문적으로 사용 가능하며 로열티 없이 모든 하드웨어 또는 소프트웨어 설계에 배포할 수 있는 실용적인 ISA를 목표로 시작되었습니다.[1]: 1 [12]또한, 프로젝트의 각 설계 결정에 대한 정당화 근거는 적어도 넓은 의미에서 설명됩니다.RISC-V 저자들은 컴퓨터 설계에 상당한 경험을 가진 학자들이며, RISC-V ISA는 일련의 학술적 컴퓨터 설계 프로젝트, 특히 버클리 RISC에서 직접 개발된 것입니다.RISC-V는 부분적으로 그러한 모든 프로젝트를 지원하기 위해 시작되었습니다.[1]: 1 [12]

RISC-V ISA 설계자는 대규모의 지속적인 사용자 커뮤니티를 구축하고 이를 통해 설계 및 소프트웨어를 축적하기 위해 주어진 마이크로아키텍처에 대한 오버아키텍처 없이 콤팩트, 성능 및 저전력 실제 구현[1]: 1–2, 153–154 [13] 등 다양한 실제 사용 사례를 의도적으로 지원합니다.[1]: 1 [14][15][16]많은 기여자들의 요구사항은 RISC-V가 여러 가지 가능한 용도를 해결하도록 설계된 이유 중 일부입니다.

설계자들의 주된 주장은 명령어 집합이 하드웨어와 소프트웨어 사이의 인터페이스에 위치하기 때문에 컴퓨터의 핵심 인터페이스라는 것입니다.좋은 명령어 세트가 열려 있고 모두가 사용할 수 있다면 훨씬 더 많은 재사용을 가능하게 함으로써 소프트웨어 비용을 획기적으로 줄일 수 있습니다.또한 하드웨어 공급업체 간의 경쟁을 심화시켜 설계에 더 많은 자원을 투입하고 소프트웨어 지원에 더 적은 자원을 투입할 수 있습니다.[12]

설계자들은 지난 40년간 가장 성공적인 설계가 점점 더 유사해졌기 때문에 명령어 세트 설계에서 새로운 원리가 드물어지고 있다고 주장합니다.실패한 회사들 중 대부분은 후원 회사들이 재정적으로 성공하지 못했기 때문이지, 기술적으로 형편없었기 때문이 아닙니다.따라서, 잘 정립된 원칙을 사용하여 설계된 잘 설계된 개방형 명령어 세트는 많은 공급업체의 장기적인 지원을 받아야 합니다.[12]

RISC-V는 또한 학업적 사용을 권장합니다.정수 부분 집합의 단순성은 기본적인 학생 운동을 가능하게 하며, 소프트웨어가 연구 기계를 제어할 수 있도록 충분히 간단한 ISA입니다.가변 길이 ISA는 학생 연습과 연구 모두에 사용할 수 있는 명령어 세트 확장 공간을 제공하며,[1]: 7 분리된 특권 명령어 세트는 컴파일러 재설계 없이 운영체제 지원에 대한 연구가 가능합니다.[2]RISC-V의 개방형 지적재산권 패러다임을 통해 파생 설계를 게시, 재사용 및 수정할 수 있습니다.[17]

역사

RISC라는 용어는 약 1980년부터 시작되었습니다.[18]그 전에는 단순한 컴퓨터가 효과적일 수 있다는 지식( 코케 참조)이 있었지만 설계 원리는 널리 설명되지 않았습니다.간단하고 효과적인 컴퓨터는 항상 학문적인 관심사였으며, RISC 명령어 집합 DLX컴퓨터 아키텍처의 초판으로 만들었습니다. 1990년 데이비드 패터슨(David Patterson) 공동 저자로 참여한 양적 접근법(Quantitative Approach)DLX는 교육용으로 개발되었으며, 학자들과 애호가들은 FPGA(Field-Programmable Gate Array)를 사용하여 구현했지만, 상업적인 구현을 위한 것은 아니었습니다.버전 2 이전의 ARM CPU들은 퍼블릭 도메인 명령어 세트를 가지고 있었으며 여전히 인기 있는 자유 소프트웨어 컴파일러인 GCC(GNU Compiler Collection)에 의해 지원되고 있습니다.이 ISA에는 3개의 오픈소스 코어가 존재하지만 결코 제조되지 않았습니다.[19][20]OpenRISC는 DLX를 기반으로 하는 오픈 소스 ISA로 관련 RISC 설계가 포함되어 있으며, GCC 및 Linux 구현을 완벽하게 지원하지만 상업적인 구현은 거의 없습니다.

캘리포니아 대학교 버클리Krste Asanović는 오픈 소스 컴퓨터 시스템에 대한 연구 요구 사항을 가지고 있었고, 2010년에 그의 대학원생 몇 명과 함께 "여름 동안의 짧은 3개월 프로젝트"로 하나를 개발하고 출판하기로 결정했습니다.이 계획은 학계와 산업계 사용자 모두를 돕는 것이었습니다.[12]버클리 대학의 데이비드 패터슨(David Patterson)은 버클리 RISC의 창시자로서 이 공동 작업에 참여했고,[18] RISC-V는 캘리포니아 대학교 버클리 캠퍼스(RISC-I and RISC-II)에서 오랜 협력 RISC 기반 연구 프로젝트의 5세대로, Patterson이 1981년에 출판한 RISC-I and RISC-II,1984년의 SOAR 아키텍처를[22] "RISC-III"로, 1988년의 SPUR[23] 아키텍처를 "RISC-IV"로 지칭[21]).이 단계에서 학생들은 초기 소프트웨어, 시뮬레이션 및 CPU 설계를 제공했습니다.[6]

2012년 6월 BWRC(Berkeley Wireless Research Center)에서 최초로 Raven1 ST28nm 도입

RISC-V 저자들과 그 기관은 원래 ISA[24] 문서와 BSD 라이센스 하에 몇 가지 CPU 설계를 제공하였는데, 이를 통해 RISC-V 칩 설계와 같은 파생 작업을 개방적이고 자유롭게 하거나 폐쇄적이고 독점적으로 수행할 수 있었습니다.ISA 사양 자체(즉, 명령어 세트의 인코딩)는 2011년 오픈 소스로 공개되었으며 [25]모든 권한이 예약되어 있습니다.실제 기술 보고서(규격의 표현)는 나중에 Creative Commons 라이선스 하에 놓여 RISC-V Foundation을 통한 외부 기여자의 향상을 허용하고 나중에 RISC-V International.

RISC-V의 전체 역사는 RISC-V International 웹사이트에 게시되었습니다.[26]

RISC-V 재단 및 RISC-V 인터내셔널

상용 사용자들은 ISA가 안정적이어야만 몇 년 동안 지속될 수 있는 제품에 사용이 가능합니다.이러한 문제를 해결하기 위해 2015년 RISC-V 재단을 설립하여 RISC-V의 정의와 관련된 지적재산을 소유, 유지, 공표하고 있습니다.[27]원작자와 소유자는 재단에 권리를 양도했습니다.[citation needed]이 재단은 IBM에서 오픈 인프라 프로젝트를 주도한 후 2019년에 그 역할을 맡게 된 Calista Redmond CEO가 이끌고 있습니다.[28][failed verification]

RISC-V의 창립 멤버는 다음과 같습니다.안데스, 앤트마이크로, 블루스펙,[29] CEVA, 코다십, 코르투스, 에스페란토, 에스프레시프, ETH 취리히, 구글, IBM, ICT, IIT 마드라스, 래티스, 로우RISC, 마이크로칩, MIT(Csail), 퀄컴, 램버스, 럼블, SiFive, Syntacore 및 Technology.

2019년 11월 RISC-V 재단은 미국의 무역규제 우려를 이유로 스위스로 이전할 것이라고 발표했습니다.[30]2020년 3월 현재, 이 단체의 이름은 스위스 비영리 비즈니스 협회인 RISC-V International입니다.[31]

2019년 현재 RISC-V International은 RISC-V를 정의하는 문서를 자유롭게 공개하고 소프트웨어 및 하드웨어 설계에 ISA를 제한 없이 사용할 수 있도록 허용하고 있습니다.그러나 RISC-V International의 회원만 변경 사항을 승인할 수 있으며 회원 단체만 상표 호환성 로고를 사용합니다.[32][failed verification]

시상식

  • 2017: The Linley Group의 Analyst's Choice Award for Best Technology (명령어 세트)[33]

설계.

ISA 베이스 및 확장

RISC-V는 모듈형 설계로 대체 기본 부품으로 구성되며 옵션 확장 기능이 추가됩니다.ISA 기반과 확장은 산업계, 연구계, 교육기관 간의 공동 노력으로 개발됩니다.기본은 명령어(및 그 인코딩), 제어 흐름, 레지스터(및 그 크기), 메모리 및 주소 지정, 로직(즉, 정수) 조작 및 보조 장치를 지정합니다.베이스만으로도 범용 컴파일러를 포함한 전체 소프트웨어 지원을 통해 단순화된 범용 컴퓨터를 구현할 수 있습니다.

표준 확장은 모든 표준 기저와 충돌 없이 서로 작동하도록 지정됩니다.

대부분의 RISC-V 컴퓨터는 압축 명령어 확장을 구현하여 전력 소모, 코드 크기 및 메모리 사용을 줄일 수 있습니다.[1]: 97–99 하이퍼바이저가상화를 지원하기 위한 향후 계획도 있습니다.[2]

슈퍼바이저 확장과 함께, RV 베이스 명령어 세트 중 하나를 포함하는 RVGC 명령어 세트인 S, (베이스가 내장되어 있지 않음을 의미하는 "I"를 포함하는) 확장의 G 컬렉션, 그리고 C 확장은 범용 운영 체제를 편리하게 지원하기 위해 필요한 모든 명령어를 정의합니다.[1]: 129, 154

ISA 베이스 및 확장
이름. 묘사 버전 상태[A] 인스트럭션카운트
기초
RVWMO 약한 메모리 순서 지정 2.0 비준됨
RV32I 기본 정수 명령어 집합, 32비트 2.1 비준됨 40
RV32E 기본 정수 명령어 세트(내장), 32비트, 레지스터 16개 2.0 비준됨 40
RV64I 기본 정수 명령어 집합, 64비트 2.1 비준됨 15
RV64E 기본 정수 명령어 집합(내장형), 64비트 2.0 비준됨
RV128I 기본 정수 명령어 집합, 128비트 1.7 열다. 15
내선번호
M IMT2000 3GPP - 정수 곱셈과 나눗셈을 위한 표준 확장 2.0 비준됨 8(RV32)
13 (RV64)
A 원자 명령어 표준 확장 2.1 비준됨 11 (RV32)
22 (RV64)
F 고정밀 부동 소수점의 확장 표준 2.2 비준됨 26(RV32)
30 (RV64)
D 고정밀 부동 소수점의 확장 표준 2.2 비준됨 26(RV32)
32 (RV64)
지크르 제어 및 상태 레지스터(CSR) 지침 2.0 비준됨 6
지펜시 지침-페치 펜스 2.0 비준됨 1
G IMAFD_Zicr_Zifencei 베이스 및 확장의[1]: 129 축약어
Q IMT-2000 3GPP-4-정밀 부동 소수점을 위한 표준 확장 2.2 비준됨 28(RV32)
32 (RV64)
L IMT2000 3GPP - 소수점 부동 소수점을 위한 표준 확장 0.0 열다.
C 압축 명령어 표준 확장 2.0 비준됨 40
B 비트 조작을 위한 표준 확장 1.0 비준됨 43[34]
J 동적번역 언어를 위한 표준 0.0 열다.
T IMT2000 3GPP - 트랜잭션 메모리를 위한 표준 확장 0.0 열다.
P IMT-2000 3GPP-Packed-SIMD 명령어 표준 확장 0.9.10 열다.
V 벡터 연산을 위한 표준 확장 1.0 비준됨 187[35]
지크 스칼라 암호화를 위한 표준 확장 1.0.1 비준됨 49[36]
H 하이퍼바이저용 표준 확장 1.0 비준됨 15
S IMT2000 3GPP - 감독자 수준 명령어를 위한 표준 확장 1.12 비준됨 4
잘못 정렬된 아토믹스 0.1 열다.
지힌트 멈춤 힌트 일시 중지 2.0 비준됨
지힌틀 비시간 로컬리티 힌트 0.2 열다.
즈파 부동 소수점 추가 지침 0.1 열다.
즈프 반정밀 부동 소수점 1.0 비준됨
즈프민 최소 반정밀 부동 소수점 1.0 비준됨
즈핀크스 정수 레지스터내의 고정밀 부동 소수점 1.0 비준됨
즈딩크 정수 레지스터내의 이중정밀 부동 소수점 1.0 비준됨
징크스 정수 레지스터의 반정밀 부동 소수점 1.0 비준됨
징크민 정수 레지스터에서의 최소 반정밀 부동 소수점 1.0 비준됨
즈물 M 확장의 곱셈 부분집합 1.0 비준됨
즈쏘 총 스토어 주문량 1.0 비준됨
  1. ^ 냉동 부품은 최종 기능이 설정되어 비준되기 전에 승인을 받기만 하면 됩니다.
32비트 RISC-V 명령어 형식
서식 조금
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
등록/등록 funct7 rs2 rs1 funct3 rd opcode
즉각적인 im[11:0] rs1 funct3 rd opcode
상위 즉시 im[31:12] rd opcode
가게 im[11:5] rs2 rs1 funct3 im[4:0] opcode
분점 [12] im[10:5] rs2 rs1 funct3 im[4:1] [11] opcode
점프 [20] im[10:1] [11] im[19:12] rd opcode
  • opcode(7비트):6가지 유형의 명령어 형식 중 어느 것을 부분적으로 지정합니다.
  • funct7funct3(10비트):이 두 필드는 opcode 필드 이외에도 수행할 작업을 지정합니다.
  • rs1, rs2, rd(5비트):계산 결과가 전달될 첫 번째 피연산자(즉, 소스 레지스터), 두 번째 피연산자 및 대상 레지스터를 포함하는 레지스터, 리스프(resp.)를 인덱스로 지정합니다.

구현할 수 있는 기능들의 조합을 길들이기 위해, 명명법은 현재 비준된 Unliferred ISA Specification의 27장에 명시하기 위해 정의됩니다.RISC-V, 레지스터 비트폭 및 변종(예: RV64I 또는 RV32E)에 대한 코딩으로 명령 세트 베이스가 먼저 지정됩니다.그런 다음 위 표의 순서대로 구현된 확장을 지정하는 문자를 따릅니다.각 문자에는 선택적으로 장조 뒤에 "p"와 부 옵션 번호가 붙습니다.부 버전 번호가 없으면 0으로, 버전 번호가 모두 없으면 1.0으로 기본 설정됩니다.따라서 RV64IMAFDRV64I1p0M1P0A1p0F1D1D0 이상으로 간단히 RV64I1M1A1F1D1로 표기될 수 있습니다.가독성을 위해 확장자 사이에 밑줄을 사용할 수 있습니다(예: RV32I2_M2_A2).

A diagram of the modular instruction set of the RV32IMAC variant, showing all instructions in the base integer ISA and the extensions for Integer Multiplication and Division, Atomic Instructions, and Compressed Instructions.
RV32의 모듈식 명령어 세트IMAC 변종.이 CPU는 32비트 CPU로 기본 정수 ISA(RV32I)와 정수 곱셈 및 분할(RV32M), 원자 명령어(RV32A) 및 압축 명령어(RV32C)를 위한 ISA 확장 기능을 갖추고 있습니다.

다중 코어 컴퓨팅을 위한 동기화 프리미티브와 함께 기본, 확장 정수 및 부동 소수점 계산은 범용 컴퓨팅에 필요한 것으로 간주되며, 따라서 우리는 "G"라는 축약어를 가지고 있습니다.

내장형 시스템의 소형 32비트 시스템은 RV32EC일 수 있습니다.큰 64비트 시스템은 RV64GC(즉, RV64IMAFDCZicsr_Zifencei)일 수 있습니다.

확장자 수가 증가함에 따라, 표준은 이제 확장자 이름을 "Z" 하나에 이어 알파벳 이름과 선택적 버전 번호로 지정할 수 있도록 규정합니다.예를 들어, Zifencei는 명령어 가져오기 확장자의 이름을 지정합니다.Zifencei2Zifencei2p0 이름이 같은 버전 2.0입니다.관례상 "Z" 뒤에 오는 첫 글자는 가장 밀접하게 관련된 알파벳 확장 범주인 IMAFDQLCBJTPVN을 나타냅니다.따라서 잘못 정렬된 원자학에 대한 Zam 확장은 "A" 표준 확장과 관련이 있습니다.단일 문자 확장명과 달리 Z 확장명은 밑줄로 구분하고 범주별로 그룹화한 다음 각 범주 내에서 알파벳 순으로 구분해야 합니다.예를 들어 Zicsr_Zifencei_Zam입니다.

슈퍼바이저 권한 수준에 고유한 확장명은 접두사에 "S"를 사용하는 동일한 방식으로 이름이 지정됩니다.하이퍼바이저 레벨에 고유한 확장명은 접두사를 "H"로 지정합니다.기계 수준 확장자 앞에는 "Zxm"이라는 세 글자가 붙습니다.슈퍼바이저, 하이퍼바이저 및 시스템 수준 명령 집합 확장은 권한이 적은 확장의 이름을 따서 명명됩니다.

RISC-V 개발자는 비표준 명령어 세트 확장을 직접 작성할 수 있습니다.이것들은 "Z" 명명 규칙을 따르되 "X"를 접두어로 합니다.모든 표준 확장명 뒤에 지정해야 하며, 비표준 확장명이 여러 개 나열된 경우 알파벳 순으로 나열해야 합니다.

프로파일 및 플랫폼

표준 ISA 선택 목록에 대한 프로파일 및 플랫폼이 논의 중입니다.

... 이러한 유연성은 애플리케이션에 필요한 정확한 ISA 기능 세트만을 포함함으로써 전문화된 설계를 고도로 최적화하는 데 사용될 수 있지만, 동일한 유연성으로 인해 가능한 ISA를 선택할 수도 있습니다.프로파일은 훨씬 더 작은 공통 ISA 선택 세트를 지정하여 대부분의 사용자에게 가장 많은 가치를 제공하며, 이를 통해 소프트웨어 커뮤니티는 풍부한 소프트웨어 에코시스템 구축에 리소스를 집중할 수 있습니다.

플랫폼 규격은 소프트웨어와 하드웨어 간의 상호 운용성 요구 사항을 명시하는 플랫폼 집합을 정의합니다.플랫폼 정책은 이 플랫폼 규격에 사용되는 다양한 용어를 정의합니다.또한 플랫폼 정책은 플랫폼 사양의 범위, 적용 범위, 이름 지정, 버전 지정, 구조, 수명 주기 및 호환성 클레임에 대해 필요한 세부 정보를 제공합니다.

세트등록

RISC-V 정수 및 부동 소수점 레지스터를 위한 어셈블러 니모닉스, 및 첫 번째 표준 호출 규약에서의 역할.[1]: 137
등록하세요
이름.
심볼릭
이름.
묘사 저장한 사용자
정수 레지스터 32개
x0 항상 0
x1 반품주소 발신자
x2 sp 스택 포인터 캘리
x3 gp 글로벌 포인터
x4 tp 실 포인터
x5 t0 임시/대체 반송 주소 발신자
x6–7 t1–2 일시적인 발신자
x8 s0/fp 저장된 레지스터/프레임 포인터 캘리
x9 s1 저장 레지스터 캘리
x10–11 승률 0 대 1 함수 인수 / 반환 값 발신자
x12–17 a2 대 7 함수 인수 발신자
x18–27 s2-11 저장된 레지스터 캘리
x28–31 t3–6 일시적인 발신자
부동 소수점 확장 레지스터 32개
f0–7 ft0–7 부동 소수점 임시 발신자
f8–9 fs0–1 부동 소수점 저장 레지스터 캘리
f10-11 fa0–1 부동 소수점 인수/반환 값 발신자
f12–17 fa2-7 부동 소수점 인수 발신자
f18–27 fs2–11 부동 소수점 저장 레지스터 캘리
f28–31 ft8–11 부동 소수점 임시 발신자

RISC-V에는 32개의 정수 레지스터(또는 내장형 변형의 경우 16개)가 있으며,[1]: 13, 33 부동 소수점 확장이 구현되면 추가로 32개의 부동 소수점 레지스터가 있습니다.[1]: 63 메모리 액세스 명령을 제외하고 명령어 주소는 레지스터만 됩니다.

첫 번째 정수 레지스터는 영 레지스터이고 나머지는 범용 레지스터입니다.영점 레지스터에 대한 스토어는 영향을 미치지 않으며, 읽기는 항상 0을 제공합니다.0 레지스터를 자리 표시자로 사용하면 명령어 세트가 더 간단해집니다.[further explanation needed]

move rx to ry된다add immediate 0 to rx and store in ry.[1]: 18

제어 및 상태 레지스터가 존재하지만 사용자 모드 프로그램은 성능 측정 및 부동 소수점 관리에 사용되는 프로그램에만 액세스할 수 있습니다.

여러 레지스터를 저장하고 복원하는 명령이 없습니다.그것들은 불필요하고, 너무 복잡하며, 어쩌면 너무 느릴 수도 있다고 생각되었습니다.[17]

메모리 액세스

많은 RISC 설계와 마찬가지로 RISC-V도 로드 스토어 아키텍처입니다. 명령어는 레지스터만 다루며 로드 및 스토어 명령어는 메모리와 데이터를 주고받습니다.

대부분의 로드 및 저장 명령에는 12비트 오프셋과 두 개의 레지스터 식별자가 포함됩니다.레지스터 하나가 기본 레지스터입니다.다른 레지스터는 소스(스토어의 경우) 또는 대상(로드의 경우)입니다.

주소를 얻기 위해 오프셋이 기본 레지스터에 추가됩니다.[1]: 24 주소를 기본 레지스터와 오프셋으로 구성하면 단일 명령어가 데이터 구조에 액세스할 수 있습니다.예를 들어, 기본 레지스터가 스택의 맨 위를 가리키면 단일 명령어가 스택에서 서브루틴의 로컬 변수에 액세스할 수 있습니다.마찬가지로 로드 및 저장 명령은 레코드 스타일 구조 또는 메모리 매핑 I/O 장치에 액세스할 수 있습니다.상수 0 레지스터를 기본 주소로 사용하면 단일 명령어가 주소 0 근처의 메모리에 액세스할 수 있습니다.

메모리는 8비트 바이트로 처리되며,[1]: 9–10 명령어는 리틀 엔디언 순서로 처리되며 데이터는 코드가 실행 중인 실행 환경 인터페이스에 의해 정의된 바이트 순서로 처리됩니다.[1]: 3, 9–10, 24 단어는 레지스터 크기까지 로드 및 저장 지침을 통해 접근할 수 있습니다.

RISC-V는 원래 x86과 같이 친숙하고 성공적인 다른 컴퓨터들과 비슷하게 하기 위해 리틀 엔디언으로 지정되었습니다.[1]: 9–10 이는 모든 크기의 단어를 동일한 순서로 읽기 때문에 CPU의 복잡성을 줄이고 비용도 약간 적게 듭니다.예를 들어, RISC-V 명령어 집합은 명령어의 가장 낮은 주소의 바이트부터 디코딩합니다.빅 엔디안 및 바이 엔디안 변형은 빅 엔디안을 가정하는 레거시 코드 기반을 지원하기 위해 정의되었습니다.[1]: 9–10 권한 있는 ISA는 명령 페치 이외의 M-모드, S-모드 및 U-모드 메모리 액세스가 리틀 엔디안인지 빅 엔디안인지를 나타내는 mstatus 및 mstatush 레지스터에 비트를 정의합니다. 이러한 비트는 읽기 전용일 수 있으며, 이 경우 구현의 엔디안은 유선 연결되거나 쓰기 가능할 수 있습니다.[2]: 23–24

실행 환경 인터페이스는 액세스된 메모리 주소가 워드 너비에 맞게 정렬되지 않도록 할 수 있지만 정렬된 주소에 대한 액세스는 더 빠를 수 있습니다. 예를 들어, 단순한 CPU는 정렬 실패 인터럽트에서 파생된 느린 소프트웨어 에뮬레이션으로 정렬되지 않은 액세스를 구현할 수 있습니다.[1]: 3, 24–25

많은 RISC 명령어 세트(그리고 x86, IBM System/360z/Architecture를 통한 후속 명령어 세트 등)와 마찬가지로 RISC-V는 레지스터에 다시 쓰는 주소 모드가 없습니다.예를 들어 자동으로 증가하지는 않습니다.[1]: 24

RISC-V는 CPU나 스레드 에 공유되는 메모리 시스템을 실행 스레드가 항상 프로그램된 순서대로 메모리 작업을 볼 수 있도록 관리합니다.그러나 스레드와 I/O 장치 사이에서 RISC-V는 단순화됩니다. RISC-V는 메모리 작업의 순서를 보장하지는 않지만, 예를 들어 다음과 같은 특정 명령이 있습니다.fence.

A fence명령어는 이전 작업의 결과가 다른 스레드 또는 I/O 장치의 후속 작업에 표시되도록 보장합니다.fence메모리와 메모리 매핑 I/O 작업의 조합 순서를 보장할 수 있습니다.예를 들어 I/O 작업에 영향을 주지 않으면서 메모리 읽기 및 쓰기 작업을 분리할 수 있습니다.혹은 시스템이 메모리와 병렬적으로 입출력 장치를 동작시킬 수 있다면,fence그들이 서로를 기다리도록 강요하지는 않습니다.하나의 CPU와 하나의 스레드는 디코딩할 수 있습니다.fence~하듯이nop.

일부 RISC CPU(MIPS, PowerPC, DLX 및 Berkeley의 RISC-I 등)는 로드 및 저장소에 16비트의 오프셋을 둡니다.그들은 로드 상위 워드 명령으로 상위 16비트를 설정합니다.이를 통해 상위 하프 워드 값을 비트 이동 없이 쉽게 설정할 수 있습니다.그러나 상위 반 단어 명령어의 대부분의 사용은 주소와 같은 32비트 상수를 만듭니다.RISC-V는 12비트 오프셋과 20비트 집합 상위 명령의 SPARC와 유사한 조합을 사용합니다.12비트 오프셋이 작을수록 콤팩트한 32비트 로드 및 저장 명령어가 32개 레지스터 중 2개 레지스터를 선택할 수 있지만 RISC-V의 가변 길이 명령어 코딩을 지원하기에 충분한 비트가 있습니다.[1]: 16

즉시 처리

RISC-V는 32비트 레지스터의 상위 20비트를 설정하는 명령과 함께 32비트 상수와 주소를 처리합니다.상측 즉시 적재lui20비트를 비트 31에서 12로 로드합니다.다음과 같은 두 번째 지침이 있습니다.addi하위 12비트를 설정할 수 있습니다.대신 0 레지스터를 사용하여 작은 숫자나 주소를 형성할 수 있습니다.lui.

이 방법은 명령어를 추가함으로써 위치 독립 코드를 허용하도록 확장되어 있으며,auipc프로그램 카운터에 오프셋을 추가하고 결과를 기본 레지스터에 저장하여 20개의 상위 주소 비트를 생성하는 장치.이를 통해 프로그램이 프로그램 카운터에 상대적인 32비트 주소를 생성할 수 있습니다.

기본 레지스터는 종종 로드 및 저장소의 12비트 오프셋과 함께 그대로 사용할 수 있습니다.필요하다면,addi레지스터의 하위 12비트를 설정할 수 있습니다.64비트 및 128비트 ISA에서,lui그리고.auipcsign - 결과를 extend하여 더 큰 주소를 가져옵니다.

일부 빠른 CPU는 명령어 조합을 단일 융합 명령어로 해석할 수 있습니다.lui아니면auipc와 융합하기에 좋은 후보들입니다.jalr,addi, 적재물이나 저장물

서브루틴 호출, 점프 및 분기

RISC-V의 서브루틴 호출jal(jump 및 링크)는 반환 주소를 레지스터에 저장합니다.이것은 많은 컴퓨터 설계에서 메모리의 스택에 직접 반환 주소를 푸시하는 시스템에 비해 메모리 액세스를 절약하기 때문에 더 빠릅니다.jal는 20비트 부호화(2의 보어) 오프셋을 가집니다.오프셋에 2를 곱한 다음 PC에 추가하여 32비트 명령에 대한 상대 주소를 생성합니다.결과가 32비트 주소에 있지 않으면(즉, 4로 균등하게 나눌 수 있음) CPU는 예외를 강제로 적용할 수 있습니다.[1]: 20–23, Section 2.5

RISC-V CPU는 점프링크 레지스터를 사용하여 계산된 주소로 점프합니다.jalr설명.jalr와 비슷합니다.jal, 그러나 기본 레지스터에 12비트 오프셋을 추가하여 대상 주소를 가져옵니다.(반대로,jalPC에 더 큰 20비트 오프셋을 추가합니다.)

jalr비트 형식은 레지스터 relative 로드 및 저장과 같습니다.그들처럼.jalr기본 레지스터의 상위 20비트를 절대 주소로 32비트 분기를 설정하는 명령어와 함께 사용할 수 있습니다(사용).lui또는 PC 관련(사용)auipc위치 독립 코드의 경우).(일정한 0 기본 주소를 사용하면 단일 명령 호출에서 작은 값(오프셋), 고정된 양 또는 음의 주소로 호출할 수 있습니다.)

RISC-V 재활용품jal그리고.jalr무조건적인 20비트 PC 상대 점프와 무조건적인 레지스터 기반의 12비트 점프를 얻을 수 있습니다.점프는 반환 주소가 저장되지 않도록 연결 레지스터를 0으로 만들 뿐입니다.[1]: 20–23, Section 2.5

RISC-V도 재활용합니다.jalr서브루틴에서 돌아오는 방법:이걸 하기 위해서는.jalr의 기본 레지스터는 에 의해 저장된 연결 레지스터로 설정됩니다.jal아니면jalr.jalr의 오프셋은 0이고 링크 레지스터는 0이므로 오프셋이 없으며 반환 주소도 저장되지 않습니다.

많은 RISC 설계와 마찬가지로 서브루틴 호출에서는 RISC-V 컴파일러가 개별 명령을 사용하여 레지스터를 시작할 때 스택에 저장한 다음 종료 시 스택에서 해당 레지스터를 복원해야 합니다.RISC-V에는 저장 다중 또는 복원 다중 레지스터 명령이 없습니다.이것들은 CPU를 너무 복잡하게 만들고, 어쩌면 느릴 수도 있다고 생각되었습니다.[39]코드 공간이 더 많이 소요될 수 있습니다.설계자들은 레지스터를 저장하고 복원하기 위해 라이브러리 루틴으로 코드 크기를 줄일 계획을 세웠습니다.[40]

RISC-V에는 상태 코드 레지스터캐리 비트가 없습니다.설계자들은 조건 코드가 실행의 여러 단계에서 명령어 사이에 상호 작용을 강요함으로써 빠른 CPU를 더욱 복잡하게 만든다고 믿었습니다.이 선택은 다중 정밀도 산술을 더 복잡하게 만듭니다.또한, 몇 가지 수치 작업은 더 많은 에너지를 필요로 합니다.따라서 사전 설명(명령의 조건부 실행)은 지원되지 않습니다.설계자들은 매우 빠르고 순서가 맞지 않는 CPU 설계는 어쨌든 비교 분기와 조건부 코드를 병렬로 수행한 다음 사용되지 않은 경로의 효과를 버림으로써 예측을 수행한다고 주장합니다.또한 더 단순한 CPU에서도 예측은 분기 예측보다 가치가 낮으므로 조건부 분기와 관련된 대부분의 스톨을 방지할 수 있다고 주장합니다.예측치가 없는 코드는 더 크고 더 많은 분기가 있지만 대부분의 경우 압축 명령어 집합(RISC-V의 집합 C 등)이 이 문제를 해결한다고 주장합니다.[17][failed verification]

대신 RISC-V에는 비교를 수행하는 짧은 분기(동일, 동일하지 않음, 동일하지 않음, 동일하지 않음, 동일하지 않음, 동일하지 않음)가 있습니다.어셈블러의 피연산자 순서를 반대로 하여 6개의 명령만으로 10개의 비교 분기 연산을 구현합니다.예를 들어 보다경우 분기는 피연산자 순서가 반대인 경우보다 적게 수행할 수 있습니다.[1]: 20–23, Section 2.5

비교 분기는 PC에 대해 12비트 부호 범위를 가지며 점프합니다.[1]: 20–23, Section 2.5

일부 RISC 아키텍처와 달리 RISC-V는 분기 지연 슬롯을 포함하지 않습니다. 분기 명령 후 위치는 분기를 수행하든 수행하지 않든 명령으로 채워질 수 있습니다.[1]: 20–23, Section 2.5 RISC-V는 멀티사이클 CPU, 슈퍼스칼라 CPU 및 긴 파이프라인을 복잡하게 하므로 분기 지연 슬롯을 생략합니다.동적 분기 예측기는 지연된 분기의 필요성을 줄일 수 있을 만큼 충분히 성공했습니다.[17]

분기를 처음 접했을 때 RISC-V CPU는 음의 상대 분기(즉, 오프셋의 부호 비트가 "1")가 취해진다고 가정해야 합니다.[1]: 20–23, Section 2.5 이것은 백워드 브랜치가 루프라고 가정하고, 간단한 파이프라인 CPU가 명령어 파이프라인을 채울 수 있도록 기본 방향을 제공합니다.이 외에도 RISC-V는 분기 예측을 필요로 하지 않지만 핵심 구현은 이를 추가할 수 있습니다.RV32I는 분기에 대한 힌트가 현재 포함되어 있지 않은 "HINT" 명령 공간을 예약합니다. RV64I도 마찬가지입니다.[1]: 28–29, Section 2.9 [1]: 38–39, Section 5.4

산술 및 논리 집합

RISC-V는 산술을 덧셈, 뺄셈, 쉬프트, 비트 와이즈 논리 및 비교 분기가 있는 최소 정수 명령 집합(집합 I)으로 분리합니다.이러한 명령어는 소프트웨어를 사용하여 대부분의 다른 RISC-V 명령어 세트를 시뮬레이션할 수 있습니다.(원자력 명령은 매우 예외적입니다.)RISC-V 정수 명령에는 순수 정수 프로세서에서 소프트웨어 부동 소수점의 속도를 높이는 데 일반적으로 사용되는 카운트 선행 제로 및 비트 필드 연산이 부족합니다. 그러나 명목상 비트 조작 확장에서 비준된 Zbb, Zba 및 Zbs 확장에는 카운트 선행 제로 명령을 포함한 추가 정수 명령이 포함되어 있습니다.

정수 곱셈 명령(집합 M)에는 부호와 부호가 없는 곱셈과 나눗셈이 포함됩니다.결과의 높은 단어를 생성하는 곱셈과 나눗셈으로 이중 정밀 정수 곱셈과 나눗셈이 포함됩니다.ISA 문서는 CPU와 컴파일러의 구현자들이 표준화된 고/저 곱셈 순서를 융합하고 가능한 경우 하나의 작업에 명령을 분할할 것을 권장합니다.[1]: 43–45

부동 소수점 명령어(집합 F)는 단일 정밀도 산술과 정수 산술과 유사한 비교 분기를 포함합니다.부동 소수점 레지스터 32개가 추가로 필요합니다.이것들은 정수 레지스터와는 별개입니다.이중-정밀 부동 소수점 명령어(집합 D)는 일반적으로 부동 소수점 레지스터가 64비트(즉, 이중-폭)라고 가정하고, F 서브셋은 D 세트와 조정됩니다.쿼드-정밀 128비트 부동 소수점 ISA(Q)도 정의됩니다.[1]: 63–82 부동 소수점이 없는 RISC-V 컴퓨터는 부동 소수점 소프트웨어 라이브러리를 사용할 수 있습니다.

RISC-V는 오버플로,[1]: 17–20 언더플로우, 서브노멀, 0으로 나누기 등 산술 오류에 대한 예외를 발생시키지 않습니다.[1]: 44–45 대신 정수 및 부동 소수점 산술 모두 적절한 기본값을 생성하고 부동 소수점 명령어는 상태 비트를 설정합니다.[1]: 66 나눗셈 바이 제로는 나눗셈 후에 한 갈래로 찾을 수 있습니다.[1]: 44–45 상태 비트는 운영 체제 또는 주기적 인터럽트에 의해 테스트될 수 있습니다.

원자 메모리 연산

RISC-V는 여러 CPU와 스레드 간에 메모리를 공유하는 시스템을 지원합니다.RISC-V의 표준 메모리 일관성 모델은 릴리스 일관성입니다.즉, 로드와 저장소는 일반적으로 재정렬될 수 있지만 일부 로드는 나중에 메모리 액세스하기 전에 획득 작업으로 지정되고 일부 저장소는 이전 메모리 액세스 후에 지정되어야 하는 릴리스 작업으로 지정될 수 있습니다.[1]: 83–94

기본 명령어 세트는 메모리 순서를 강제하기 위한 명령어 형태의 최소한의 지원을 포함합니다.[1]: 26–27 이 정도면 충분하지만 (fence r, rw획득 및 제공합니다.fence rw, w를 제공합니다). 결합된 운영이 보다 효율적일 수 있습니다.[1]: Chapter 8

원자 메모리 작업 확장은 릴리스 일관성을 위해 두 가지 유형의 원자 메모리 작업을 지원합니다.첫째, 범용 부하 예약저장 조건 지침을 제공합니다.lr로드를 수행하고 해당 주소를 스레드에 예약하려고 합니다.나중에 저장 조건sc예약된 주소는 다른 소스의 개입 스토어에 의해 예약이 깨지지 않은 경우에만 수행됩니다.스토어가 성공하면 레지스터에 0이 표시됩니다.실패한 경우 0이 아닌 값은 소프트웨어가 작업을 다시 시도해야 함을 나타냅니다.어느 경우든 예약이 해제됩니다.[1]: Chapter 8

원자 명령의 두 번째 그룹은 읽기-수정-쓰기 시퀀스를 수행합니다: 대상 레지스터에 로드(선택적으로 로드 획득), 로드된 값과 소스 레지스터 간의 작업, 그리고 결과의 저장(선택적으로 저장-해제).메모리 장벽을 옵션으로 만들면 작업을 결합할 수 있습니다.옵션 작업은 모든 원자 명령에 있는 비트를 획득해제함으로써 활성화됩니다.RISC-V는 스왑(소스 레지스터 값을 직접 사용), 추가, 비트 와이즈 및 또는 배타적, 및 부호 없는 최소값과 최대값의 9가지 가능한 연산을 정의합니다.[1]: Chapter 8

시스템 설계는 다음보다 더 많은 작업을 통합하여 최적화할 수 있습니다.lr그리고.sc. 예를 들어, 스왑 대상 레지스터가 상수 0인 경우 로드를 건너뛸 수 있습니다.로드 이후 저장된 값이 수정되지 않으면 저장이 건너뛸 수 있습니다.[4]: 44

IBM System/370z/Architecture, x86 등의 후속 제품들은 모두 비교 및 스왑(cas메모리의 위치를 테스트하고 조건부로 업데이트하는 명령어: 만약 그 위치에 예상되는 이전 값이 포함되어 있다면,cas를 지정된 새 값으로 대체한 다음 변경 여부를 표시합니다.그러나, 간단한 부하 타입의 명령은 보통 다음 명령 이전에 수행됩니다.cas과거의 가치를 가져다 주기 위해서입니다.대표적인 문제는 스레드가 값 A를 읽고(로드), 새로운 값 C를 계산한 다음 ()를 사용한다는 것입니다.casAC로 대체하려면 다른 스레드의 동시 활동이 A를 다른 값 B로 대체하고 그 사이에 A를 복원했는지 여부를 알 수 없습니다.일부 알고리즘(예: 메모리의 값이 동적으로 할당된 블록에 대한 포인터인 알고리즘)에서는 이 ABA 문제가 잘못된 결과를 초래할 수 있습니다.가장 일반적인 솔루션은 포인터와 인접 카운터를 모두 업데이트하는 더블 와이드 명령어를 사용합니다. 그러나 이러한 명령어는 여러 레지스터를 지정하고 여러 읽기 및 쓰기를 수행하는 특수한 명령어 형식을 필요로 하며 복잡한 버스 동작을 가질 수 있습니다.[1]: 48–49

lr/sc대안이 더 효율적입니다.일반적으로 메모리 부하가 한 개만 필요하며 느린 메모리 동작을 최소화하는 것이 좋습니다.또한 정확합니다. 단지 비트 패턴을 보장하는 것이 아니라 메모리 셀에 대한 모든 액세스를 제어합니다.하지만 달리cas, 둘 이상의 스레드가 반복적으로 서로의 명령을 실패하게 하는 라이브락을 허용할 수 있습니다.RISC-V는 코드가 명령의 타이밍 및 시퀀스에 대한 규칙을 따르는 경우 순방향 진행(라이브락 없음)을 보장합니다. 1) I 서브셋만 사용해야 합니다. 2) 반복적인 캐시 미스를 방지하기 위해 코드(재시도 루프 포함)는 16개 이하의 연속 명령을 차지해야 합니다.3) 시스템 또는 펜스 지침을 포함하지 않아야 하며, 또는 시스템 사이에서 뒤로 가지를 취해야 합니다.lr그리고.sc. 4) 재시도 루프에 대한 역방향 분기는 원래 시퀀스에 있어야 합니다.[1]: 48–49

규격에서는 읽기-수정-쓰기 원자 명령을 사용하여 데이터 구조를 잠그는 방법의 예를 보여 줍니다.[1]: 54

압축 부분 집합

표준 RISC-V ISA는 모든 명령어가 32비트라고 명시합니다.이것은 특히 간단한 구현을 가능하게 하지만 32비트 명령어 인코딩을 가진 다른 RISC 프로세서와 마찬가지로 가변 길이 명령어를 가진 명령어 세트보다 더 큰 코드 크기를 갖습니다.[1]: 99 [39]

보상을 위해 RISC-V의 32비트 명령어는 실제로 30비트입니다.opcode 공간의 3 4는 16비트 명령어를 포함하는 옵션(권장하지만 권장되는) 가변 길이 압축 명령어 세트인 RVC를 위해 예약됩니다.ARM의 Thumb 및 MIPS16과 마찬가지로 압축된 명령어는 더 큰 명령어의 하위 집합에 대한 별칭일 뿐입니다.ARM의 썸이나 MIPS 압축 세트와는 달리 처음부터 공간이 예약되어 별도의 동작 모드가 없습니다.표준 및 압축 명령어는 자유롭게 혼용할 수 있습니다.[1]: 97 [39] (확장자는 C입니다.)[1]: 97

Sumb-1이나 MIPS16처럼 압축된 명령어는 단순히 선택된 더 큰 명령어의 하위 집합을 위한 대체 인코딩(에일리어스)이기 때문에, 압축은 어셈블러에서 구현될 수 있으며, 컴파일러가 그것에 대해 아는 것조차 필수적인 것은 아닙니다.

RVC의 프로토타입은 2011년에 테스트되었습니다.[39]프로토타입 코드는 x86 PC 및 MIPS 압축 코드보다 20% 작았고, ARM Thumb-2 코드보다 2% 컸습니다.[39]또한 필요한 캐시 메모리와 메모리 시스템의 예상 전력 사용량을 크게 줄였습니다.[39]

연구원은 소형 컴퓨터, 특히 임베디드 컴퓨터 시스템의 경우 코드의 이진법 크기를 줄일 계획이었습니다.프로토타입에는 압축된 집합을 위해 이전에 예약된 연산 코드를 사용하여 콤팩트한 16비트 형식으로 기록된 가장 자주 사용되는 명령어 중 33개가 포함되었습니다.[39]컴파일러를 변경하지 않고 어셈블러에서 압축을 수행했습니다.압축 명령어는 종종 0인 필드를 생략하고, 작은 즉시 값을 사용하거나 레지스터의 하위 집합(16개 또는 8개)에 액세스했습니다.addi매우 흔하고 종종 압축이 가능합니다.[39]

RISC-V와 프로토타입은 여러 레지스터를 저장하고 복원하는 지침이 없기 때문에 ARM의 썸 세트와 비교하여 크기 차이가 많이 발생했습니다.대신 컴파일러는 스택에 접근하는 기존 명령어를 생성했습니다.프로토타입 RVC 어셈블러는 종종 이것들을 절반 크기의 압축된 형태로 변환했습니다.그러나 이것은 여전히 여러 레지스터를 저장하고 복원하는 ARM 명령보다 더 많은 코드 공간을 차지했습니다.연구자는 라이브러리 루틴을 호출하여 레지스터를 저장하고 복원하도록 컴파일러를 수정할 것을 제안했습니다.이러한 루틴들은 코드 캐시에 유지되는 경향이 있으며 따라서 빠르게 실행되지만 저장 다중 명령만큼 빠르지는 않을 것입니다.[39]

표준 RVC는 때때로 32비트 명령어를 사용해야 합니다.몇몇 비표준 RVC 제안들은 완전하고, 32비트 명령들을 필요로 하지 않으며, 표준 RVC보다 더 높은 밀도를 가지고 있다고 합니다.[41][42]또 다른 제안은 이것들을 기반으로 하며, 코딩 범위를 적게 사용한다고 주장합니다.[43]

내장 부분 집합

가장 작은 내장 CPU(집합 E)에 대한 명령어 집합은 다른 방법으로 줄어듭니다.32개의 정수 레지스터 중 16개만 지원됩니다.[1]: Chapter 4 현재의 모든 확장자를 사용할 수 있으며, 부동 소수점 값에 정수 레지스터를 사용하는 부동 소수점 확장자를 고려하고 있습니다.권한 있는 명령어 집합은 기본 및 바인딩 주소 재배치를 사용하는 시스템 모드, 사용자 모드 및 메모리 체계만 지원합니다.[2]

심층 임베디드 시스템의 개발을 용이하게 하기 위해 RISC-V용 마이크로컨트롤러 프로파일에 대한 논의가 이루어졌습니다.인터럽트를 위한 더 빠르고 간단한 C 언어 지원, 단순화된 보안 모드, 단순화된 POSIX 응용 프로그램 바이너리 인터페이스를 중심으로 합니다.[44]

통신원들은 또한 더 작은 비표준 16비트 RV16E ISA를 제안했습니다. 몇몇 진지한 제안들은 8 × 16비트 레지스터와 함께 16비트 C 명령어를 사용할 것입니다.[42][41]만우절 바보들의 농담이 아주 실용적인 안배를 제안했습니다.표준 EIMC ISA(32비트 명령어 포함)와 함께 16×16비트 정수 레지스터를 활용합니다.농담은 32비트 CPU가 더 큰 주소 공간에 비해 확실히 우월할 때 뱅크 스위칭을 사용하라는 것이었습니다.[45]

권한있는 명령어 집합

RISC-V의 ISA에는 별도의 권한 있는 명령어 세트 규격이 포함되어 있습니다.2021년 12월 현재 버전 1.12는 RISC-V International에 의해 비준되었습니다.[2]

사양 1.11 버전은 다음과 같은 여러 종류의 컴퓨터 시스템을 지원합니다.

  1. 기계 모드만 있는 시스템, 아마도 임베디드 시스템의 경우,
  2. 시스템 모드(슈퍼바이저용)와 사용자 모드를 모두 갖춘 시스템으로 커널을 권한 모드로 실행하는 운영 체제를 구현합니다.
  3. 각 슈퍼바이저 아래에 시스템 모드, 하이퍼바이저, 다중 슈퍼바이저 및 사용자 모드가 있는 시스템.

이는 최대 4개의 권한 및 보안 을 가진 시스템(머신, 하이퍼바이저, 슈퍼바이저 및 사용자)에 해당합니다.또한 각 계층에는 표준화된 지원 소프트웨어의 얇은 계층이 있어야 하며, 이를 통해 더 많은 권한을 가진 계층 또는 하드웨어와 통신할 수 있습니다.[2]

ISA에는 사용자 및 슈퍼바이저 모드와 직교하는 하이퍼바이저 모드도 포함되어 있습니다.[46]기본 기능은 슈퍼바이저 수준의 코드가 하이퍼바이저 레지스터에 액세스하도록 허용하거나 액세스 시 인터럽트를 발생시키는 구성 비트입니다.이 비트를 통해 슈퍼바이저 모드가 하이퍼바이저에 필요한 하드웨어를 직접 처리할 수 있습니다.이를 통해 운영 체제에서 호스팅하는 하이퍼바이저 구현이 간소화됩니다.이것은 창고 규모의 컴퓨터를 실행하는 데 인기 있는 모드입니다.비호스트 하이퍼바이저를 지원하기 위해 비트로 인해 이러한 액세스가 하이퍼바이저로 중단될 수 있습니다.또한 하이퍼바이저가 하이퍼바이저 아래에서 실행되는 하이퍼바이저의 네스팅을 단순화하고, 필요한 경우 커널이 자체 커널 코드 내에서 하이퍼바이저 기능을 사용할 수 있도록 합니다.따라서 ISA의 하이퍼바이저 형태는 머신, 슈퍼바이저, 사용자, 슈퍼바이저 언더 하이퍼바이저 및 사용자 언더 슈퍼바이저의 다섯 가지 모드를 지원합니다.

권한 있는 명령어 집합 규격은 하드웨어 스레드 또는 차트를 명시적으로 정의합니다.여러 하드웨어 스레드는 더 많은 기능을 갖춘 컴퓨터에서 일반적으로 사용됩니다.하나의 스레드가 정지되어 메모리를 기다리는 경우 다른 스레드들이 종종 진행될 수 있습니다.하드웨어 스레드는 빠른 순서 이탈 CPU에서 많은 수의 레지스터와 실행 장치를 보다 효과적으로 사용할 수 있습니다.마지막으로 하드웨어 스레드는 인터럽트를 처리하는 간단하고 강력한 방법이 될 수 있습니다.레지스터를 저장하거나 복원할 필요는 없으며, 단순히 다른 하드웨어 스레드를 실행할 뿐입니다.그러나 RISC-V 시스템에 필요한 하드웨어 스레드는 스레드 0뿐입니다.[2]

기존의 제어 및 상태 레지스터 정의는 RISC-V의 오류 및 메모리 예외와 소수의 인터럽트를 지원합니다.인터럽트가 더 많은 시스템의 경우, 명세서는 또한 인터럽트 컨트롤러(PLIC)를 정의합니다.인터럽트는 항상 가장 높은 권한을 가진 시스템 레벨에서 시작되며, 각 레벨의 제어 레지스터에는 인터럽트를 덜 권한을 가진 코드로 라우팅하기 위한 명시적 포워딩 비트가 있습니다.예를 들어 하이퍼바이저는 인터럽트를 운영 체제로 전달하기 위해 각 인터럽트에 대해 실행되는 소프트웨어를 포함할 필요는 없습니다.대신 설정 시 인터럽트를 전달할 비트를 설정할 수 있습니다.[2]

사양에는 여러 메모리 시스템이 지원됩니다.물리적 전용은 가장 간단한 임베디드 시스템에 적합합니다.또한 대용량 스토리지 시스템에 캐싱된 메모리를 위한 UNIX 스타일의 가상 메모리 시스템이 3개 있습니다.가상 메모리 시스템은 32, 39 및 48비트 크기의 주소를 가진 세 가지 크기의 MMU를 지원합니다.모든 가상 메모리 시스템은 4개의 KiB 페이지와 다단계 페이지 테이블 트리를 지원하며 페이지 테이블 트리를 걷는데 매우 유사한 알고리즘을 사용합니다.모두 하드웨어 또는 소프트웨어 페이지 테이블 워킹을 위해 설계되었습니다.선택적으로 페이지 테이블 워크 비용을 줄이기 위해, 초대형 페이지는 시스템의 페이지 테이블 트리의 상위 단계에 있는 리프 페이지일 수 있습니다.SV32에는 2층 페이지 테이블 트리가 있으며 4개의 MiB 수퍼 페이지를 지원합니다.SV39는 3단계 페이지 테이블을 가지고 있으며, 2개의 MiB 수퍼페이지와 1개의 GiB 기가페이지를 지원합니다.SV39를 지원하려면 SV48이 필요합니다.또한 4단계 페이지 테이블을 가지고 있으며 2개의 MiB 수퍼페이지, 1개의 GiB 기가페이지, 512개의 GiB 테라페이지를 지원합니다.수퍼페이지는 페이지 경계에서 다음으로 작은 크기의 페이지로 정렬됩니다.[2]

비트 조작

일부 비트 조작 ISA 확장은 2021년 11월에 비준되었습니다(Zba, Zbb, Zbc, Zbs).[34]Zba, Zbb, Zbs 확장자는 표준 I 정수 명령어의 확장자임에 틀림없습니다. Zba는 크기 2, 4, 8바이트의 데이터 유형 배열에 있는 배열 요소의 주소 계산 속도를 높이는 명령어를 포함하고 있으며, 부호 없는 정수(add.uw, sh1add)로 색인화된 경우 64비트(및 128비트)의 비트 프로세서를 위해 배열 요소의 주소 계산 속도를 높이는 명령어를 포함하고 있습니다.uw, sh2add.uw, sh3add.uw 및 slli.uw).Zbb 명령어에는 전체 및 32개 워드 작업(clz, clzw, ctz, ctzw, cpop, cpopw)에서 선행, 후행 0비트 또는 모든 1비트를 카운트하는 작업이 포함되어 있습니다. 바이트 순서 역전(rev8), 두 번째 입력이 부정되는 논리적 명령(그리고 n,orn, xnor), 특수하게 제공할 수 없는 부호 및 0 확장(sext.b, sext.h, zext.h)기타 명령어(andi, addiw, add.wu), 정수(서명 및 비부호)의 최소 및 최대, 레지스터 및 32비트 워드(ori, ror, ror, ror, ror, rol, rol, rol)의 (왼쪽 및 오른쪽) 회전 및 전체 레지스터에서 0바이트를 탐지할 수 있는 바이트 와이즈 "또는 조합" 연산의 경우,C-style null terminated strings 함수를 처리하는 데 유용합니다.Zbs 확장을 사용하면 레지스터의 개별 비트를 인덱스(bseti, bset, bext, bclri, bclr, binvi, binv)로 설정, 가져오기, 지우기 및 토글할 수 있습니다.

Zbc 확장에는 갈루아 필드 GF(2)(clmul, clmulh, clmulr)에 대한 다항식의 곱을 수행하는 "캐리리스 곱셈"에 대한 명령이 있습니다.데이터 무결성의 암호화 및 CRC 검사에 유용합니다.

잘했습니다. 좀 더 전문화된 비트 조작 서브셋은 암호화, 그래픽 및 수학적 작업을 지원할 수 있습니다.추가적으로 논의된 명령에는 하나를 이동하는 명령, 일반화된 비트 반전, 셔플 및 크로스바 순열, 비트 필드 플레이스, 두 단어의 추출 및 저장 팩, 하나의 레지스터에 바이트 또는 하프 워드, CRC 명령, 비트 매트릭스 작업(RV64만 해당), 조건부 혼합, 조건부 이동, 깔때기 이동이 포함됩니다.초안에 문서화된 포함 기준은 RISC-V 철학 및 ISA 형식, 코드 밀도 또는 속도의 상당한 개선(즉, 명령어를 최소한 3 대 1로 줄이는 것), 기존 컴파일러 지원을 포함한 상당한 실제 응용 프로그램을 준수했습니다.비트 조작 확장 버전 0.93에는 이러한 명령어가 포함되어 있습니다.[47] 일부 명령어는 현재 스칼라 및 엔트로피 소스 명령어 암호 확장 버전 1.0.1에 있습니다.[36]

포장된 SIMD

팩킹-SIMD 명령어는 멀티미디어 및 기타 디지털 신호 처리를 저렴하게 가속화하기 위해 상용 CPU에서 널리 사용됩니다.[17]단순하고 비용이 절감된 RISC-V 시스템의 경우, 기본 ISA의 사양은 부동 소수점 레지스터의 비트를 사용하여 병렬 단일 명령, 다중 데이터(SIMD) 서브 워드 연산을 수행할 것을 제안했습니다.

2017년 한 공급업체가 메일링 목록에 보다 상세한 제안서를 게시했으며 버전 0.1을 인용할 수 있습니다.[48]2019년 현재 제안된 ISA의 효율성은 다양한 DSP 코덱에 대해 기본 CPU당 2배에서 5배까지 다양합니다.[49]이 제안서는 RISC-V International에 대한 지침 형식과 라이센스 할당이 부족했지만 메일링 리스트에 의해 검토되었습니다.[48]이 제안의 일부 인기 없는 부분은 RISC-V 설계의 첫 번째인 조건 코드를 추가하고 인접 레지스터를 링크(또한 첫 번째)하며 일부 마이크로아키텍처에서 구현하기 어려울 수 있는 루프 카운터를 가지고 있다는 것입니다.

벡터 집합

제안된 벡터-처리 명령어 세트는 패킹된 SIMD 세트를 더 이상 쓸모없게 만들 수 있습니다.설계자들은 CPU가 표준 프로세서의 레지스터에 벡터 명령을 구현할 수 있는 충분한 유연성을 갖기를 희망합니다.이렇게 하면 위와 같이 멀티미디어 ISA와 유사한 성능으로 최소한의 구현이 가능합니다.그러나 실제 벡터 코프로세서는 동일한 코드를 더 높은 성능으로 실행할 수 있습니다.[50]

2021년 9월 19일 현재 벡터 확장은 버전 1.0입니다.[51]범용 혼합 정밀 벡터 프로세서의 보수적이고 유연한 설계로, 컴퓨팅 커널을 실행하기에 적합합니다.코드는 벡터 길이가 다른 CPU로 쉽게 포팅할 수 있으며, 이상적으로 다시 컴파일하지 않아도 좋습니다.[50]

반대로 단벡터 SIMD 확장은 덜 편리합니다.x86, ARM 및 PA-RISC에서 사용됩니다.이것들에서 워드-폭의 변화는 벡터 레지스터를 확장하기 위한 명령어 세트의 변경을 강제합니다(x86의 경우 64비트 MMX 레지스터에서 128비트 스트리밍 SIMD 확장(SSE), 256비트 고급 벡터 확장(AVX) 및 AVX-512).그 결과 명령어 집합이 증가하고 새로운 명령어로 작업 코드를 포팅해야 합니다.

RISC-V 벡터 ISA에서, 아키텍처에서 벡터 길이를 고정하는 것보다, 명령어들(vsetvli,vsetivli,그리고.vsetvl)는 요청된 크기를 사용하여 벡터 길이를 하드웨어 제한의 최소값과 요청된 크기로 설정할 수 있습니다.따라서 RISC-V 제안은 Cray의 롱 벡터 설계나 ARM의 Scalable Vector Extension에 더 가깝습니다.즉, 최대 32개의 벡터에서 각각의 벡터는 길이가 같습니다.[51]: 25

애플리케이션은 필요한 총 벡터 폭을 지정하고, 프로세서는 사용 가능한 온칩 리소스를 제공할 수 있는 벡터 길이를 결정합니다.이것은 명령의 형태를 갖습니다 (vsetcfg) 4개의 즉각적인 피연산자를 사용하여 필요한 각 사용 가능한 너비의 벡터 레지스터 수를 지정합니다.총계는 주소 지정 가능한 한계인 32개 이하여야 하지만, 응용 프로그램이 이를 모두 요구하지 않는 경우에는 더 적을 수 있습니다.벡터 길이는 사용 가능한 온칩 스토리지를 각 엔트리에 필요한 스토리지 바이트 수로 나눈 값으로 제한됩니다. (추가된 하드웨어 제한도 존재할 수 있으며, 이로 인해 SIMD 스타일의 구현이 허용될 수 있습니다.)[50]

벡터 루프 이외의 응용 프로그램은 요청된 벡터 레지스터의 수를 제로화하여 운영 체제에서 컨텍스트 스위치에 보존하는 작업을 절약할 수 있습니다.[50]

벡터 길이는 구조적으로 가변적일 뿐만 아니라 실행 시간에 따라 가변적으로 설계됩니다.이러한 유연성을 달성하기 위해, 명령어 세트는 가변 폭 데이터 경로와 다형성 오버로딩을 사용하는 가변형 연산을 사용할 가능성이 있습니다.[50]ISA와 컴파일러의 크기와 복잡성을 줄일 수 있다는 계획입니다.[50]

가변 폭 데이터 경로를 가진 최근의 실험용 벡터 프로세서는 초당(속도), 면적(저비용) 및 와트(배터리 수명이 길어짐) 연산의 수익성 증가를 보여줍니다.[52]

일반적인 현대 그래픽 처리 장치와 달리 분기 예측을 지원하기 위한 특별한 하드웨어를 제공할 계획은 없습니다.대신, 더 낮은 비용의 컴파일러 기반 예측이 사용될 것입니다.[50][53]

외부 디버그 시스템

RISC-V의 하드웨어 지원 디버거에 대한 예비 사양이 있습니다.디버거는 JTAG(Joint Test Action Group) 또는 USB(Universal Serial Bus)와 같은 전송 시스템을 사용하여 디버그 레지스터에 액세스합니다.표준 하드웨어 디버그 인터페이스는 표준화된 추상 인터페이스 또는 명령어 피딩을 지원할 수 있습니다.[54][55]

2017년 1월 현재, 추상 인터페이스의 정확한 형태는 정의되지 않았지만, 제안들은 디버그 장치들의 레지스터들을 위한 표준화된 주소들 또는 통신 시스템에 접근할 수 있는 명령 레지스터 및 데이터 레지스터를 갖는 메모리 매핑 시스템을 포함합니다.[54]통신원들은 프리스케일의 배경 디버그 모드 인터페이스(BDM)가 일부 CPU, ARM, OpenRISC, Aeroflex의 LEON에 유사한 시스템을 사용한다고 주장합니다.[54]

명령어 피드에서 CPU는 레지스터에 쓰여진 개별 명령어를 실행하기 위해 디버그 예외를 처리합니다.이것은 데이터 전달 레지스터와 메모리에 직접 접근하기 위한 모듈로 보충될 수 있습니다.명령어 피딩은 디버거가 소프트웨어와 똑같이 컴퓨터에 접근할 수 있게 해줍니다.또한 CPU의 변화를 최소화하고 다양한 유형의 CPU에 적응합니다.이는 RISC-V가 여러 유형의 컴퓨터를 위해 특별히 설계되었기 때문에 특히 적합하다고 합니다.데이터 전달 레지스터는 디버거가 RAM에 데이터 이동 루프를 작성한 다음 루프를 실행하여 디버그 시스템의 데이터 채널의 최대 속도에 가까운 속도로 컴퓨터 내/외부로 데이터를 이동시킬 수 있습니다.[54]통신원들은 MIPS Technologies MIPS, Intel Quark, Tensilica의 XtensaFreescale Power ISA CPU의 백그라운드 디버그 모드 인터페이스(BDM)에 유사한 시스템이 사용된다고 말합니다.[54]

한 공급업체에서 표준화를 위한 하드웨어 트레이스 서브시스템을 제안하고 적합한 설계를 기증했으며 검토를 시작했습니다.[56][57]대부분의 RISC-V CPU에서 코드 실행을 추적할 수 있는 하드웨어 모듈을 제안합니다.제안서는 데이터 속도를 줄이고 추적 데이터에 대해 더 단순하거나 더 저렴한 경로를 허용하기 위해 코드의 이진 이미지에서 계산할 수 있는 추적 데이터를 생성하지 않습니다.프로그램을 통해 어떤 조건부 분기가 취해지는지와 같이 "해석할 수 없는" 경로를 나타내는 데이터만 보냅니다.데이터 속도를 줄이기 위해 무조건 분기와 같이 계산할 수 있는 분기는 추적되지 않습니다.모듈과 제어부 사이에 제안된 인터페이스는 각각의 비적계 명령어에 대한 논리 신호입니다.주소 및 기타 데이터는 CPU의 적절한 데이터 소스에 연결된 전문 버스에 제공됩니다.외부 추적 장치로 전송되는 데이터 구조는 필요한 데이터가 포함된 일련의 짧은 메시지입니다.제안서에는 데이터 채널에 대한 세부 정보가 의도적으로 설명되어 있지 않습니다. 몇 가지가 타당할 가능성이 있기 때문입니다.

구현

RISC-V 조직은 RISC-V CPU 및 SoC 구현 목록을 관리합니다.[58]

존재하는

기존의 독점적 구현은 다음과 같습니다.

  • Allwinner Technology는 XuanTie C906 CPU를 D1 Application Processor에 구현했습니다.[59]
  • RISC-V International의 창립 프리미어 멤버인 안데스 테크놀로지 코퍼레이션.[60]RISC-V CPU 제품군은 작은 32비트 코어부터 DSP, FPU, 벡터, 슈퍼스칼라 및/또는 멀티코어 기능을 갖춘 고급 64비트 코어까지 다양합니다.
  • Buffalo Lab은 RISC-V(RV32IMACF, BL60x/BL70x 시리즈)를 기반으로 한 일련의 MCU를 보유하고 있습니다.[61]
  • CloudBEAR는 다양한 애플리케이션을 위한 자체 RISC-V 코어를 개발하는 프로세서 IP 회사입니다.[62]
  • RISC-V International의 창립 멤버인 Codasip은 다양한 저전력 임베디드 고성능 임베디드 및 애플리케이션 프로세서 코어를 개발했습니다.[60][63][64]
  • Cortus는 RISC-V 재단과 RISC-V International의 Platinum 창립 멤버로,[60] 다양한 RISC-V 구현을 수행하고 있습니다.Cortus는 저사양에서 매우 고성능인 RISC-V 32/64비트 프로세서, 디지털, 아날로그, RF, 보안 및 완전한 IDE/툴체인/디버그 에코시스템에 이르기까지 RISC-V 32/64비트 프로세서를 포함한 대규모 IP 포트폴리오를 사용하여 ASIC 설계 서비스를 제공합니다.
  • 에스프레시는 ESP32-S2 마이크로컨트롤러에 RISC-VULP 보조 프로세서를 추가했습니다.[65]2020년 11월 에스프레시프는 싱글 코어 32비트 RISC-V(RV32IMC) 기반 MCU인 ESP32-C3를 발표했습니다.[66]
  • Fraunhofer IPMS는 기능적 안전 요구사항을 충족시킬 수 있는 RISC-V 코어를 개발한 최초의 기관이었습니다.IP Core EMSA5는 5단계 파이프라인이 있는 32비트 프로세서로 범용 변형(EMSA5-GP) 및 ISO 26262 Automotive Safety Integrity Level-D 표준을 충족할 수 있는 안전 변형(EMSA5-FS)으로 제공됩니다.[67]
  • 기가디바이스는 RISC-V(RV32IMAC, GD32V 시리즈)를 기반으로 한 일련의 MCU를 보유하고 있으며,[68] 그 중 하나는 중국 전자업체 사이피드가 생산하는 롱안 나노 보드에 사용되고 있습니다.[69]
  • 구글, 픽셀6픽셀7용[70] 타이탄 M2 보안 모듈 개발
  • GreenWaves Technologies는 2018년 2월에 GAP8, 32비트 1 컨트롤러와 8개의 컴퓨팅 코어, 32비트 SoC(RV32IMC) 및 개발자 보드의 가용성을 발표했습니다.GAPuino GAP8 개발 보드는 2018년 5월에 선적을 시작했습니다.[71][72][73]
  • 상상 테크놀로지 RTXM-2200은[74] Catapult 제품군의 첫 번째 코어입니다.실시간으로 결정적인 32비트 내장 CPU입니다.
  • FPGA 코어의 인스턴트 SoC-V 코어.C++에서 정의한 RISC-V 코어를 포함한 System On Chip.
  • Micro Magic Inc.는 2020년 10월에 5GHz와 13,000 CoreMarks를 달성한 세계에서 가장 빠른 64비트 RISC-V 코어를 발표했습니다.
  • MIPS는 2021년 RISC-V 코어 개발로 전환했습니다.2022년 12월 eVocore P8700을 출시했습니다.[75][76]
  • Seagate는 2020년 12월 스토리지 장치용 컨트롤러에 사용할 RISC-V 범용 코어 2개를 개발했다고 발표했습니다.[77]
  • RISC-V 하드웨어 개발을 위해 특별히 설립된 회사인 SiFive는 2017년에 프로세서 모델을 출시했습니다.[78][79]여기에는 Linux와 같은 범용 운영 체제를 실행할 수 있는 SoC(Quad-core, 64비트) 시스템이 포함됩니다.[80]
  • 중국에 본사를 둔 SiFive의 자회사인 StarFive는 빅데이터 애플리케이션용과 컴퓨팅 스토리지용의 두 가지 RISC-V 구현을 제공합니다.[81][82]
  • Syntacore는 [83]RISC-V International의 창립 멤버이자 최초의 상업적 RISC-V IP 공급업체 중 하나로, 2015년부터 RISC-V IP 제품군을 개발하고 라이센스를 부여하고 있습니다.2018년 현재 제품군은 오픈소스 SCR1 MCU 코어(RV32I/E[MC])[84]를 포함하여 8개의 32비트 및 64비트 코어를 포함하고 있습니다.Syntacore IP를 기반으로 한 첫 번째 상용 SoC는 2016년에 시연되었습니다.[85]
  • CH340 및 ARM 마이크로컨트롤러와[86] 같은 인기 있고 저렴한 USB 칩 제조업체인 중국의 WinChipHead(WCH)는 미화 0.20달러 CH32V003를 필두로 하는 간단하고 저렴한 RISC-V 마이크로컨트롤러 라인 CH32Vxx를 선보였습니다.[87][88]
  • Codasip과 UltraSoC는 Codasip의 RISC-V 코어 및 기타 IP를 UltraSoC의 디버그, 최적화 및 분석과 결합한 RISC-V 임베디드 SOC에 대한 완전 지원 지적 재산권을 개발했습니다.[89]
  • 2020년 현재 인도 국방 및 전략 부문은 인텔이 22nm FinFET 공정으로 제작한 IIT-Madras가 개발한 64비트 RISC-V 기반 100-350MHz Risecreek 프로세서를[citation needed] 사용하기 시작했습니다.[90][91]

개발중

  • ASTC는 임베디드 IC용 RISC-V CPU를 개발했습니다.[92]
  • 인도 C-DAC(Center for Development of Advanced Computing)는 VEGA 마이크로프로세서 시리즈에 따라 단일 코어 32비트, 단일 코어 64비트, 세 개의 고장 난 단일 코어, 듀얼 및 쿼드 코어 RISC-V 프로세서를 순차적으로 개발하고 있습니다.[93][94][95]
  • 코밤 가이슬러 NOEL-V [96]64비트
  • 케임브리지 대학교의 컴퓨터 연구소FreeBSD Project와 협력하여 이 운영 체제를 64비트 RISC-V에 이식하여 하드웨어-소프트웨어 연구 플랫폼으로 사용하고 있습니다.[97]
  • 에스페란토 테크놀로지스는 ET-Maxion 고성능 코어, ET-Minion 에너지 효율적 코어, ET-Graphics 그래픽 프로세서 등 3개의 RISC-V 기반 프로세서를 개발 중이라고 발표했습니다.[98]
  • ETH Zurich볼로냐 대학은 에너지 효율적인 IoT 컴퓨팅을 위한 PULP(Parallel Ultra-Low Power) 프로젝트의 일환으로 오픈 소스 RISC-V PUMPino 프로세서를[99] 공동 개발했습니다.[100]
  • 유럽 프로세서 이니셔티브(EPI), RISC-V Accelerator Stream.[101][102]
    2021년 EPI 최초 작동 RISC-V 칩 샘플 예시
  • IIT-Madras의 RISE(Reconfigurable Intelligent Systems Engineering Group)는 사물인터넷(IoT)용 소형 32비트 CPU부터 Rapid를 기반으로 서버 팜과 같은 창고 규모의 컴퓨터를 위해 설계된 대형 64비트 CPU에 이르기까지 6개의 Shakti 시리즈 RISC-V 오픈 소스 CPU 설계를 개발하고 있습니다.IO하이브리드 메모리 큐브 기술 [103][15][104]32비트 무식은 신용카드, EVM(Electronic Botting Machine), 감시 카메라, 안전 잠금 장치, 개인 맞춤형 건강 관리 시스템의 응용을 위해 RISE에 의해 성공적으로 부팅되었습니다.[91][105]
  • low RISC는 64비트 RISC-V ISA를 기반으로 완전 오픈 소스 하드웨어 시스템을 (SoC)에 구현하는 비영리 프로젝트입니다.[106]
  • Nvidia는 RISC-V를 사용하여 GeForce 그래픽 카드의 Falcon 프로세서를 교체할 계획입니다.[107]
  • RV64X 컨소시엄은 RISC-V에 대한 일련의 그래픽 확장 작업을 진행하고 있으며 GPU 유닛을 갖춘 오픈 소스 RISC-V 코어를 개발하고 있다고 발표했습니다.[108]
  • SiFive는 첫 번째 RISC-V 주문 외 고성능 CPU 코어인 U8 Series Processor IP를 발표했습니다.[109]
  • 칩 위에 200 TOPS "킬로코어" 슈퍼컴퓨터인 Sesperanto ET-SoC-1, 텐서/벡터 유닛이 있는 1088개의 소형 64비트 주문형 ET-Minion 코어와 4개의 대형 64비트 주문형 ET-Maxion 코어가 있습니다.
  • Ventana는 데이터 센터 애플리케이션을 대상으로 고성능 RISC-V CPU IP 및 칩렛 기술을 개발하고 있다고 밝혔습니다.[111][112]

오픈소스

오픈 소스 RISC-V CPU 설계는 다음과 같이 다양하게 존재합니다.

  • 버클리 중앙 처리 장치.이것들은 독특한 하드웨어 디자인 언어인 Chisel로 구현되어 있으며, 일부는 유명한 기차 엔진의 이름을 따서 지어졌습니다.
    • 64비트 로켓.[113]로켓은 개인용 기기와 같은 소형 저전력 중간 컴퓨터에 적합할 수 있습니다.스티븐슨의 로켓에서 이름을 따왔습니다.
    • 64비트 Berkeley Out of Order Machine(BOOM).[114]Berkeley Out of Order Machine(BOOM)은 Chisel 하드웨어 구성 언어로 작성된 합성 가능하고 매개 변수화 가능한 오픈 소스 RV64GC RISC-V 코어입니다.BOOM은 Rocket용으로 개발된 인프라의 대부분을 사용하며, 개인용, 슈퍼컴퓨터 및 창고 규모의 컴퓨터에 사용될 수 있습니다.
    • 학생 프로젝트를 위해 설계된 [115]버클리의 32비트 소도르 CPU 디자인 5종.[116]소도르(Sodor)는 탱크 엔진 토마스(Thomas the Tank Engine)에 관한 동화에 나오는 가상의 기차 섬입니다.
  • picorv32 byClaire Wolf,[117] 32비트 마이크로컨트롤러 유닛(MCU)급 RV32Verilog에서의 IMC 구현.
  • 32비트 MCU(마이크로 컨트롤러 유닛) 클래스 RV32인 [118]Syntacore의 scr1Verilog에서의 IMC 구현.
  • MIPT-IL랩(MIPT Lab for CPU Technologies for Intel의 도움으로 만든 CPU Technologies)의 mipt-mips[119].mipt-mips는 RISC-V 및 MIPS CPU의 주기적으로 정확한 프리실리콘 시뮬레이터입니다.CPU 상에서 실행되는 프로그램의 성능을 측정합니다. 주요 특징으로는 대화형 MARS 시스템 호출과의 호환성,[120] GDB와의 대화형 시뮬레이션, 여러 예측 알고리즘과 명령어 캐시를 포함한 구성 가능한 분기 예측 단위, 단계 간 데이터 바이패스 등이 있습니다.C++에서 구현.
  • Verilog에서 물리적으로 작고 검증된 비트시리얼 RV32I 코어인 Olof Kindgren에 의한 SERV는[121] 세계에서 가장 작은 RISC-V CPU입니다. LiteX 및 FuseSoC 구축 시스템과 통합되어 있습니다.FPGA 구현은[122] 125개의 룩업 테이블(LUT)과 164개의 플립플롭으로 1.5 MIPS에서 실행되었으며 130nm 노드의 ASIC에서 2.1kGE였으며[122] 고급 FPGA는 10,000개의 코어를 저장할 수 있었습니다.[123]
  • ETH 취리히 / 볼로냐 대학교의 PULPino (Riscy and Zero-Riscy).[124]PULPino의 코어는 간단한 RV32를 구현합니다.IMC ISA는 마이크로컨트롤러(Zero-Riscy)용이거나 내장된 신호 처리를 위한 맞춤형 DSP 확장 기능을 갖춘 보다 강력한 RV32 IMFC ISA입니다.
  • Western Digital, 2018년 12월 RV32 발표주문형 2방향 슈퍼스칼라 및 9단계 파이프라인 설계가 특징인 SweRV EH1이라고 불리는 IMC 코어.2019년 12월, WD는 2개의 하드웨어 스레드와 9단계 파이프라인으로 구성된 주문형 코어 SweRV EH2와 4단계 파이프라인으로[125] 구성된 단일 이슈 코어 SweRV EL2를 발표했습니다. WD는 플래시 컨트롤러와 SSD에 SweRV 기반 프로세서를 사용할 계획이며 2019년 1월에 타사에 오픈 소스로 공개했습니다.[126][127][128]
  • 고도로 구성 가능한 32비트 MCU(마이크로 컨트롤러 유닛)급 RV32[I/E][129] Stephan Nolting의 NEORV32MACUX_Zbb_Zfinx_Zicsr_Zifencei CPU(플랫폼 독립 VHDL로 작성된 온칩 디버거 지원).이 프로젝트에는 이미 UART, 타이머, SPI, TWI, TRNG 및 임베디드 메모리와 같은 공통 모듈을 포함하는 마이크로컨트롤러와 같은 SoC가 포함됩니다.
  • 알리바바 그룹은 2019년 7월 2.5GHz 16코어 64비트(RV64GCV) XuanTie 910 프로세서의 고장을 발표했습니다.[130]2021년 10월 XuanTie 910이 오픈 소스로 출시되었습니다.[131]
  • 중국과학원 컴퓨팅기술연구소(ICT CAS)는 2020년 6월 샹산 고성능 RISC-V 프로세서 프로젝트를 시작했습니다.[132][133]

소프트웨어

새 명령어 세트의 일반적인 문제는 CPU 설계와 소프트웨어의 부족입니다. 두 가지 문제 모두 사용성을 제한하고 채택을 줄입니다.[12]RISC-V는 많은 수의 CPU 설계를 가지고 있습니다.RISC-V 소프트웨어는 툴 체인, 운영 체제, 미들웨어[vague] 및 디자인 소프트웨어를 포함합니다.

사용 가능한 RISC-V 소프트웨어 도구로는 GCC(GNU Compiler Collection) 툴체인(디버거인 GDB 포함), LLVM 툴체인, OVPsim 시뮬레이터(및 RISC-V Fast Processor Models 라이브러리), 스파이크 시뮬레이터, QEMU(RV32GC/RV64GC)의 시뮬레이터 등이 있습니다. JEP 422: Linux/RISC-V Port는 이미 메인라인 OpenJDK 저장소에 통합되어 있습니다.

Linux 커널, FreeBSD, NetBSDOpenBSD에 대한 운영 체제 지원이 있지만 슈퍼바이저 모드 지침은 권한 있는 ISA 규격 버전 1.11 이전에는 표준화되지 않았으므로 [2]이 지원은 임시적입니다.예비 FreeBRISC-V 아키텍처에 대한 SD 포트는 2016년 2월에 업스트림되었으며 FreeBSD 11.0으로 출시되었습니다.[134][97]데비안[135]페도라[136] 리눅스 배포판의 포트와 하이쿠 포트가 [137]안정화되고 있습니다(모두 64비트 RISC-V만 지원하며 32비트 버전은 지원할 계획이 없습니다).Das U-Boot 포트가 있습니다.[138]UEFI Spec v2.7은 RISC-V 바인딩을 정의했으며 TianoCore 포트는 HPE 엔지니어가[139] 수행했으며 업스트림이 예상됩니다.이 L4 마이크로커널의 예비 포트가 있습니다.[140][141]Hex Five는 FreeRTOS를 지원하는 최초의 RISC-V용 Secure IoT Stack을 출시했습니다.[142]또한 MIT에서 교육학적 목적으로 사용되는 ANSICSixth Edition Unix의 현대적인 재구현인 xv6가 이식되었습니다.파로스 RTOS는 64비트 RISC-V[143](시간 및 메모리 보호 포함)로 포팅되었습니다.실시간 운영 체제 비교참조하십시오.

자바스크립트를 이용하여 웹브라우저에서 RISC-V Linux 시스템을 실행하기 위한 시뮬레이터가 존재합니다.[144][145][146]

QEMU는 여러 에뮬레이트 또는 가상화된 장치(직렬, 병렬, USB, 네트워크, 스토리지, 실시간 클럭, 워치독, 오디오)와 함께 32비트 및 64비트 RISC-V 시스템(: 리눅스)을 실행하고 RISC-V 리눅스 바이너리(시스템 호출을 호스트 커널로 변환)를 실행할 수 있습니다.다중 코어 에뮬레이션(SMP)을 지원합니다.[147]

Creator 시뮬레이터는 휴대용이며 사용자가 다양한 프로세서의 다양한 어셈블리 언어를 학습할 수 있도록 해줍니다(Creator에는 RISC-V 및 MIPS32 명령 구현의 예가 있습니다).[148][149][150][151]

확장형 교육 시뮬레이터 WepSIM은 RISC-V 명령(RV32I+M)의 서브셋(마이크로프로그래밍)을 구현하고 어셈블리에서 서브루틴을 실행할 수 있도록 합니다.[152][153]

RISC-V IP 코어 생성에는 Scala 기반 하드웨어 설명 언어, 장치에 사용하기 위해 Verilog로 설계를 줄일 수 있는 [154]Chisel, RISC-V 프로세서 코어를 설명하고 이에 대응하는 HDK(RTL)를 생성하기 위해 사용된 CodAL 프로세서 설명 언어 등 다양한 언어가 적용되었습니다.테스트벤치 및 UVM)[155] 및 SDK.RISC-V International Compliance Task Group에는 RV32IMC에 대한 GitHub 저장소가 있습니다.[156]

개발도구

  • IAR Systems는 RV32 32비트 RISC-V 코어 및 확장을 지원하는 RISC-V용 IAR Embedded Workbench의 첫 번째 버전을 출시했습니다.향후 릴리스에는 64비트 지원 및 소규모 RV32E 기본 명령어 세트 지원, 기능적 안전 인증 및 보안 솔루션이 포함될 예정입니다.
  • 라우터바흐는 RISC-V 지원을 TRACE32 JTAG 디버거에 추가했습니다.[157][158]라우터바흐는 SiFives RISC-V NEXCO 기반 프로세서 트레이스에 대한 지원도 발표했습니다.
  • SEGGER는 "J-Trace PRO RISC-V"라는 새로운 제품을 출시하고 J-Link 디버깅 프로브 제품군에 [160]RISC-V 코어 지원, 통합 개발 환경 Embedded Studio,[161] RTOS 엠보스 및 임베디드 소프트웨어를 추가했습니다.[162]
  • 현재 지멘스의 일부인 UltraSOC는 표준 추적 시스템을 제안하고 구현을 기증했습니다.[163]

참고 항목

메모들

  1. ^ 비표준 변형을 통해 빅 앤 바이 엔디안을 지원합니다. 명령어는 항상 리틀 엔디안입니다.[1]: vi, 9–10
  2. ^ V(로마 숫자 '5')는 1981년부터[3] 캘리포니아 대학교 버클리에서 개발된 5세대 RISC 아키텍처로서 RISC-V를 나타냅니다.

참고문헌

  1. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd Waterman, Andrew; Asanović, Krste, eds. (December 2019). "The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 20191213" (PDF). RISC-V Foundation. Retrieved 5 November 2021.
  2. ^ a b c d e f g h i j k l Waterman, Andrew; Asanović, Krste (3 December 2021). "The RISC-V Instruction Set Manual Volume II: Privileged Architecture Document Version 20211203" (PDF). RISC-V International. Retrieved 5 November 2021.
  3. ^ Urquhart, Roddy (29 March 2021). "What Does RISC-V Stand For? A brief history of the open ISA". Systems & Design: Opinion. Semiconductor Engineering.
  4. ^ a b Waterman, Andrew; Asanović, Krste (7 May 2017). "The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.2" (PDF). RISC-V International. Retrieved 5 November 2021.
  5. ^ Newsome, Tim; Wachs, Megan (22 March 2019). "RISC-V External Debug Support Version 0.13.2 d5029366d59e8563c08b6b9435f82573b603e48e" (PDF). RISC-V International. Retrieved 7 November 2021.
  6. ^ a b "Contributors". riscv.org. Regents of the University of California. Archived from the original on 7 September 2018. Retrieved 25 August 2014.
  7. ^ "About RISC-V, RISC-V International is the global non-profit home of the open standard RISC-V Instruction Set Architecture (ISA)". RISC-V International.
  8. ^ "RISC-V To Move HQ to Switzerland Amid Trade War Concerns". EE Times Europe. 28 November 2019.
  9. ^ Demerjian, Chuck (7 August 2013). "A long look at how ARM licenses chips: Part 1". SemiAccurate.
  10. ^ Demerjian, Chuck (8 August 2013). "How ARM licenses its IP for production: Part 2". SemiAccurate.
  11. ^ "Wave Computing Closes Its MIPS Open Initiative with Immediate Effect, Zero Warning". 15 November 2019.
  12. ^ a b c d e f Asanović, Krste. "Instruction Sets Should be Free" (PDF). U.C. Berkeley Technical Reports. Regents of the University of California. Retrieved 15 November 2016.
  13. ^ "Rocket Core Generator". RISC-V. Regents of the University of California. Archived from the original on 6 October 2014. Retrieved 1 October 2014.
  14. ^ Celio, Christopher; Love, Eric. "ucb-bar/riscv-sodor". GitHub. Regents of the University of California. Retrieved 12 February 2015.
  15. ^ a b "SHAKTI Processor Program". Indian Institute of Technology Madras. Retrieved 3 September 2019.
  16. ^ Celio, Christopher. "CS 152 Laboratory Exercise 3" (PDF). UC Berkeley. Regents of the University of California. Archived from the original (PDF) on 12 February 2015. Retrieved 12 February 2015.
  17. ^ a b c d e Waterman, Andrew; Asanović, Krste (31 May 2016). "The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA version 2.1" (PDF). University of California, Berkeley. EECS-2016-118. Retrieved 5 November 2021.
  18. ^ a b Patterson, David A.; Ditzel, David R. (October 1980). "The Case for the Reduced Instruction Set Computer". ACM SIGARCH Computer Architecture News. 8 (6): 25. doi:10.1145/641914.641917. S2CID 12034303.
  19. ^ "Amber ARM-compatible core". OpenCores. Retrieved 26 August 2014.
  20. ^ "ARM4U". OpenCores. Retrieved 26 August 2014.
  21. ^ Chen, Tony; David A. Patterson (24 January 2016). RISC-V Geneology (Technical report). University of California at Berkeley. UCB/EECS-2016-6.
  22. ^ Samples, Alan Dain; Klein, Mike; Foley, Pete (1985). SOAR Architecture (Technical report). University of California, Berkeley. UCB/CSD-85-226.
  23. ^ Hill, Mark Donald; et al. (Susan J. Eggers, James Richard Larus, George S. Taylor, Glenn D. Adams, Bidyut Kumar Bose, Garth A. Gibson, Paul Mark Hansen, John Keller, Shing I. Kong, Corinna Grace Lee, Daebum Lee, J. M. Pendleton, Scott Allen Ritchie, David A. Wood, Benjamin G. Zorn, Paul N. Hilfinger, D. A. Hodges, Randy H. Katz, John K. Ousterhout, and David A. Patterson) (December 1985). SPUR: A VLSI Multiprocessor Workstation (Technical report). University of California, Berkeley. UCB/CSD-86-273.
  24. ^ Asanović, Krste. "The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA" (PDF). U.C. Berkeley Technical Reports. Regents of the University of California. Retrieved 13 May 2011.
  25. ^ Hruska, Joel (21 August 2014). "RISC rides again: New RISC-V architecture hopes to battle ARM and x86 by being totally open source". ExtremeTech.
  26. ^ "RISC-V History". Retrieved 28 January 2023.
  27. ^ "A new blueprint for microprocessors challenges the industry's giants". The Economist. 3 October 2019. ISSN 0013-0613. Retrieved 10 November 2019.
  28. ^ "Design Automation Conference". dac.com. Retrieved 6 February 2021.
  29. ^ "Members". RISC-V International. Retrieved 1 August 2023.
  30. ^ "U.S.-based chip-tech group moving to Switzerland over trade curb fears". Reuters. 26 November 2019. Retrieved 26 November 2019.
  31. ^ "RISC-V History - RISC-V International". RISC-V International. Retrieved 14 May 2020.
  32. ^ "RISC-V Foundation". RISC-V Foundation. Archived from the original on 10 April 2019. Retrieved 15 March 2019.
  33. ^ "The Linley Group Announces Winners of Annual Analysts' Choice Awards" (Press release). The Linley Group. 12 January 2017. Retrieved 21 January 2018.
  34. ^ a b "Bit-Manipulation ISA-extensions" (PDF). RISC-V International. November 2021.
  35. ^ "Vector Extension". RISC-V International. November 2021.
  36. ^ a b "RISC-V Cryptography Extensions Volume I Scalar & Entropy Source Instructions" (PDF). GitHub. 18 February 2022. Retrieved 28 January 2023.
  37. ^ "RISC-V Profiles". Discussion. 2022.
  38. ^ RISC-V Platform Horizontal Subcommittee (December 2021). "RISC-V Platform Specification" (PDF). Version 0.3-draft.
  39. ^ a b c d e f g h i Waterman, Andrew (13 May 2011). Improving Energy Efficiency and Reducing Code Size with RISC-V Compressed. U.C. Berkeley: Regents of the University of California. p. 32. Retrieved 25 August 2014.
  40. ^ Waterman, Andrew; et al. "The RISC-V Compressed Instruction Set Manual Version 1.9 (draft)" (PDF). RISC-V. Retrieved 18 July 2016.
  41. ^ a b Brussee, Rogier. "A Complete 16-bit RVC". Google Groups. RISC-V Foundation. Retrieved 18 July 2019.
  42. ^ a b Brussee, Rogier. "Proposal: Xcondensed, [a] ... Compact ... 16 bit standalone G-ISA". RISC-V ISA Mail Server. Google Groups. Retrieved 10 November 2016.
  43. ^ Phung, Xan. "Improved Xcondensed". Google Groups. RISC-V Foundation. Retrieved 18 July 2019.
  44. ^ Ionescu, Liviu. "The RISC-V Microcontroller Profile". GitHub. Retrieved 5 April 2018.
  45. ^ Barros, Cesar (1 April 2018). "Proposal: RV16E". RISC-V ISA Developers (Mailing list). Retrieved 2 April 2018.
  46. ^ Bonzini, Paolo; Waterman, Andrew. "Proposal for Virtualization without H mode". RISC-V ISA Developers (Mailing list). Retrieved 24 February 2017.
  47. ^ Wolf, Claire, ed. (10 January 2021). "RISC-V Bitmanip Extension Document Version 0.93" (PDF). GitHub. RISC-V Foundation. Retrieved 9 March 2021.
  48. ^ a b "Instruction Summary for a "P" ISA Proposal". Google Groups. ANDES Technologies. Retrieved 13 January 2020.
  49. ^ Su, Charlie (30 June 2018). "Comprehensive RISC-V Solutions for AIoT" (PDF). RISC-V Content. RISC-V Foundation. Retrieved 28 January 2023.
  50. ^ a b c d e f g Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. "RISC-V Vector Extension Proposal" (PDF). RISC-V. Regents of the University of California. Retrieved 14 March 2016.
  51. ^ a b "Release Vector Extension 1.0, frozen for public review · riscv/Riscv-v-spec". GitHub.
  52. ^ Ou, Albert; Nguyen, Quan; Lee, Yunsup; Asanović, Krste. "A Case for MVPs: Mixed-Precision Vector Processors" (PDF). UC Berkeley EECS. Regents of the University of California. Archived from the original (PDF) on 15 March 2016. Retrieved 14 March 2016.
  53. ^ Lee, Yunsup; Grover, Vinod; Krashinsky, Ronny; Stephenson, Mark; Keckler, Stephen W.; Asanović, Krste. "Exploring the Design Space of SPMD Divergence Management on Data-Parallel Architectures" (PDF). Berkeley's EECS Site. Regents of the University of California. Archived from the original (PDF) on 15 March 2016. Retrieved 14 March 2016.
  54. ^ a b c d e Bradbury, Alex; Wallentowitz, Stefan. "RISC-V Run Control Debug". Google Docs. RISC-V Foundation. Retrieved 20 January 2017.
  55. ^ Newsome, Tim. "RISC-V Debug Group > poll results". Google Groups, RISC-V Debug Group. RISC-V Foundation. Retrieved 20 January 2017.
  56. ^ McGooganus. "riscv-trace-spec". GitHub. Retrieved 13 January 2020.
  57. ^ Dahad, Nitin. "UltraSoC Tackles RISC-V Support Challenge by Donating Trace Encoder". EE Times. Aspencore. Retrieved 13 January 2020.
  58. ^ "RISC-V Cores and SoC Overview". RISC-V. 25 September 2019. Retrieved 5 October 2019.
  59. ^ "D1". Retrieved 30 September 2021.
  60. ^ a b c "RISC-V International Members". RISC-V International. Retrieved 22 January 2021.
  61. ^ "At CES2022 Bouffalo Shows its Matter Turnkey Solution". www.eetimes.com. Retrieved 20 January 2022.
  62. ^ "CloudBEAR". Retrieved 16 October 2018.
  63. ^ riscv/riscv-cores-list, RISC-V, 6 February 2021, retrieved 9 February 2021
  64. ^ "Codasip announces RISC-V processor cores providing multi-core and SIMD capabilities". www.newelectronics.co.uk. Archived from the original on 23 December 2020. Retrieved 9 February 2021.
  65. ^ "3.6.2 Ultra-Low-Power Co-Processor". ESP32-S2 Family Datasheet V1.1 (PDF). Espressif Systems. 2020. Retrieved 9 June 2020.
  66. ^ "ESP32-C3 Family Datasheet V0.4" (PDF). Espressif Systems. 2020. Retrieved 27 December 2020.
  67. ^ Manners, David (8 June 2021). "Fraunhofer licensing fault-tolerant RISC core for safety-critical applications". Electronics Weekly. Retrieved 13 April 2022.
  68. ^ "GigaDevice Unveils The GD32V Series With RISC-V Core in a Brand New 32-bit General Purpose Microcontroller". www.gigadevice.com. 23 August 2019. Archived from the original on 29 August 2019. Retrieved 29 August 2019.
  69. ^ "Sipeed Longan Nano - RISC-V GD32VF103CBT6 Development Board". www.seeedstudio.com. Retrieved 29 August 2019.
  70. ^ Kleidermacher, Dave; Seed, Jesse; Barbello, Brandon (27 October 2021). "Pixel 6: Setting a new standard for mobile security". Google Security Blog. Archived from the original on 27 October 2021. Retrieved 12 February 2023.
  71. ^ "GreenWaves GAP8 is a Low Power RISC-V IoT Processor Optimized for Artificial Intelligence Applications". CNXSoft: Embedded Systems News. 27 February 2018. Retrieved 4 March 2018.
  72. ^ Yoshida, Junko (26 February 2018). "AI Comes to Sensing Devices". EE Times. Retrieved 10 July 2018.
  73. ^ "GreenWaves Technologies Announces Availability of GAP8 Software Development Kit and GAPuino Development Board" (Press release). 22 May 2018.
  74. ^ "IMG RTXM-2200 CPU". Imagination. Retrieved 30 September 2023.
  75. ^ Leibson, Steven (9 January 2023). "MIPS Rolls Out Its First RISC-V Processor Core – It's a Big 'Un". EEJournal.
  76. ^ Robinson, Dan (11 May 2022). "MIPS discloses first RISC-V chips coming in Q4 2022". The Register.
  77. ^ Shilov, Anton (9 December 2020). "Seagate Develops Own RISC-V Cores for Storage Controllers". Tom's Hardware.
  78. ^ "HiFive1". SiFive. Archived from the original on 26 February 2017. Retrieved 10 July 2018.
  79. ^ SiFive. "Hi-Five1: Open-source Arduino-Compatible Development Kit". Crowd Supply. Retrieved 2 December 2016.
  80. ^ "FU540 SoC CPU". SiFive. Retrieved 24 October 2018.
  81. ^ Horwitz, Josh (23 March 2023). "Chinese search giant Baidu invests in RISC-V chip technology startup StarFive". Reuters.
  82. ^ Sharwood, Simon (27 March 2023). "Chinese web giant Baidu backs RISC-V for the datacenter". The Register.
  83. ^ "Syntacore". Retrieved 11 December 2018.
  84. ^ "SCR1, open-source RISC-V core". GitHub. Retrieved 11 December 2018.
  85. ^ "RISC-V workshop proceedings". 11 December 2016. Retrieved 28 January 2023.
  86. ^ "WinChipHead (WCH)".
  87. ^ "CH32V003". WCH-IC. Retrieved 10 July 2023.
  88. ^ "the-10-cent-risc-v-processor-ch32v003". EEvblog. Retrieved 10 July 2023.
  89. ^ Manners, David (23 November 2016). "Codasip and UltraSoC Combine on RISC-V". Electronics Weekly. Metropolis International Group, Ltd. Retrieved 23 November 2016.
  90. ^ Desikan, Shubashree (6 August 2018). "IIT-Madras powers up a desi chip". The Hindu. ISSN 0971-751X. Retrieved 25 September 2020.
  91. ^ a b "Meet India's Atmanirbhar Microprocessor chip 'Moushik', meant for IoT devices". WION. Retrieved 25 September 2020.
  92. ^ Ashenden, Peter (9 November 2016). "Re: [isa-dev] RISC V ISA for embedded systems". RISC-V ISA Developers (Mailing list). Retrieved 10 November 2016. At ASTC (www.astc-design.com), we have an implementation of RV32EC as a synthesizable IP core intended for small embedded applications, such as smart sensors and IoT.
  93. ^ "C-DAC announces Tech Conclave 2019". The Times of India. Archived from the original on 17 May 2019. Retrieved 12 April 2019.
  94. ^ Sharwood, Simon (19 August 2020). "India selects RISC-V for semiconductor self-sufficiency contest: Use these homegrown cores to build kit". The Register. Retrieved 9 July 2021.
  95. ^ "VEGA MICROPROCESSORS". Vega Processor - CDAC. 9 July 2021. Retrieved 9 July 2021.
  96. ^ "NOEL-V Processor". Cobham Gaisler. Retrieved 14 January 2020.
  97. ^ a b "FreeBSD Foundation: Initial FreeBSD RISC-V Architecture Port Committed". 4 February 2016.
  98. ^ "Esperanto exits stealth mode, aims at AI with a 4,096 core 7nm RISC-V monster". wikichip.org. January 2018. Retrieved 2 January 2018.
  99. ^ "PULPino GitHub project". GitHub. Retrieved 2 February 2018.
  100. ^ "PULP Platform". PULP Platform. Retrieved 2 February 2018.
  101. ^ "Accelerator Stream". European Processor Initiative (EPI). Retrieved 22 February 2020.
  102. ^ Redmond, Calista (28 January 2023). "How the European Processor Initiative is Leveraging RISC-V for the Future of Supercomputing". RISC-V International News. RISC-V International.
  103. ^ Halfacree, Gareth (10 June 2021). "RISC-V boffins lay out a plan for bringing the architecture to high-performance computing". The Register. Retrieved 9 July 2021.
  104. ^ "IIT Madras Open Source Processor Project". Rapid IO. IIT Madras. 26 August 2014. Archived from the original on 14 September 2014. Retrieved 13 September 2014.
  105. ^ "IIT Madras Develops and Boots up MOUSHIK Microprocessor for IoT Devices". IIT Madras. 24 September 2020. Retrieved 9 July 2021.
  106. ^ "lowRISC website". Retrieved 10 May 2015.
  107. ^ Xie, Joe (July 2016). NVIDIA RISC V Evaluation Story. 4th RISC-V Workshop. Youtube. Archived from the original on 13 November 2021.
  108. ^ "RV64X: A Free, Open Source GPU for RISC-V". EETimes. Retrieved 9 February 2021.
  109. ^ Frumusanu, Andrei (30 October 2019). "SiFive Announces First RISC-V OoO CPU Core: The U8-Series Processor IP". Anandtech.
  110. ^ "Esperanto ET-SoC-1 1092 RISC-V AI Accelerator Solution at Hot Chips 33". 24 August 2021.
  111. ^ Gwennap, Linley (13 December 2021). "Ventana Develops RISC-V Chiplet". Microprocessor Report.
  112. ^ Dahad, Nitin (6 September 2021). "RISC-V Chiplet Startup Raises $38m, Targets Data Center Compute". EE Times.
  113. ^ Asanović, Krste; et al. "rocket-chip". GitHub. RISC-V International. Retrieved 11 November 2016.
  114. ^ Celio, Christopher. "riscv-boom". GitHub. Regents of the University of California. Retrieved 29 March 2020.
  115. ^ Celio, Christopher. "riscv-sodor". GitHub. Regents of the University of California. Retrieved 11 November 2016.
  116. ^ Celio, Chris. "ucb-bar/riscv-sodor". github. Regents of the University of California. Retrieved 25 October 2019.
  117. ^ Wolf, Claire. "picorv32". GitHub. Retrieved 27 February 2020.
  118. ^ "scr1". GitHub. Syntacore. Retrieved 13 January 2020.
  119. ^ "mipt-mips". GitHub.
  120. ^ "MIPS syscall functions available in MARS". courses.missouristate.edu. Retrieved 28 May 2023.
  121. ^ Kindgren, Olof. "SERV - The serial RISC-V CPU". github. Retrieved 25 September 2023.
  122. ^ a b Kindgren, Olof (29 December 2022). "SERV: 32-bit is the New 8-bit" (Video, 2:38). YouTube. RISC-V Foundation. Retrieved 25 September 2023.
  123. ^ Halfacree, Gareth (14 June 2022). "CoreScore Benchmark Sees New Record with 10,000 RISC-V Cores on One FPGA". fossi-foundation.org. FOSSi Foundation. Retrieved 25 September 2023.
  124. ^ Traber, Andreas; et al. "PULP: Parallel Ultra Low Power". ETH Zurich, University of Bologna. Retrieved 5 August 2016.
  125. ^ Shilov, Anton. "Western Digital Rolls-Out Two New SweRV RISC-V Cores For Microcontrollers". www.anandtech.com. Retrieved 9 February 2021.
  126. ^ Shilov, Anton. "Western Digital Reveals SweRV RISC-V Core, Cache Coherency over Ethernet Initiative". www.anandtech.com. Retrieved 23 May 2019.
  127. ^ "Western Digital Releases SweRV RISC-V Core Source Code". AB Open. 28 January 2019. Archived from the original on 21 May 2019.
  128. ^ GitHub의 Core-SwRV
  129. ^ Nolting, Stephan (2022). "neorv32". GitHub. doi:10.5281/zenodo.7030070. Retrieved 9 September 2021.
  130. ^ "China's Alibaba is making a 16-core, 2.5 GHz RISC-V processor". www.techspot.com. 28 July 2019. Retrieved 30 July 2019.
  131. ^ "Alibaba open sources four RISC-V cores: XuanTie E902, E906, C906 and C910". 20 October 2021. Retrieved 20 October 2021.
  132. ^ 깃허브에 있는 샹산 저장소
  133. ^ XiangShan 오픈 소스 64비트 RISC-V 프로세서로 Arm Cortex-A76과 경쟁 - CNX 소프트웨어
  134. ^ "riscv - FreeBSD Wiki". wiki.freebsd.org.
  135. ^ Montezelo, Manuel. "Debian GNU/Linux port for RISC-V 64". Google Groups. Retrieved 19 July 2018.
  136. ^ "Architectures/RISC-V". Fedora Wiki. Red Hat. Retrieved 26 September 2016.
  137. ^ "Booting our RISC-V images". Haiku Project. 7 November 2021. Retrieved 4 March 2023.
  138. ^ Begari, Padmarao. "U-Boot port on RISC-V 32-bit is available". Google Groups. Microsemi. Retrieved 15 February 2017.
  139. ^ GitHubRiscVEdk2
  140. ^ Almatary, Hesham. "RISC-V, seL4". seL4 Documentation. Commonwealth Scientific and Industrial Research Organisation (CSIRO). Retrieved 13 July 2018.
  141. ^ Almatary, Hesham. "heshamelmatary". GitHub. Retrieved 13 July 2018.
  142. ^ "MultiZone Secure IoT Stack, the First Secure IoT Stack for RISC-V". Hex Five Security. Hex Five Security, Inc. 22 February 2019. Retrieved 3 March 2019.
  143. ^ "Pharos". SourceForge. Retrieved 1 April 2020.
  144. ^ "ANGEL is a Javascript RISC-V ISA (RV64) Simulator that runs riscv-linux with BusyBox". RISCV.org. Archived from the original on 11 November 2018. Retrieved 17 January 2019.
  145. ^ Lee, Yunsup (5 March 2014). "Boot RISC-V Linux in your web browser!". RISC-V International. Retrieved 4 September 2020.
  146. ^ "ANGEL – RISC-V". riscv.org.s3-website-us-west-1.amazonaws.com. Archived from the original on 1 December 2020. Retrieved 4 September 2020.
  147. ^ "Documentation/Platforms/RISCV". QEMU Wiki. Retrieved 7 May 2020.
  148. ^ Camarmas-Alonso, Diego; Garcia-Carballeira, Felix; Del-Pozo-Puñal, Elias; Mateos, Alejandro Calderon (23 July 2021). CREATOR: Simulador didáctico y genérico para la programación en ensamblador [CREATOR: Didactic and generic simulator for assembly programming]. XXXI Jornadas de Paralelismo (JP20/21) (in Spanish). Malaga. doi:10.5281/zenodo.5130302.
  149. ^ Camarmas-Alonso, Diego; Garcia-Carballeira, Felix; Del-Pozo-Punal, Elias; Mateos, Alejandro Calderon (October 2021). A new generic simulator for the teaching of assembly programming. 2021 XLVII Latin American Computing Conference (CLEI) (in Spanish). Cartago, Costa Rica: IEEE (published 21 December 2021). pp. 1–9. doi:10.1109/CLEI53233.2021.9640144. ISBN 978-1-6654-9503-5. S2CID 245387555. Retrieved 2 August 2022.
  150. ^ RISC-V를 사용한 CREATOR Web 예제: https://creatorsim.github.io/creator/ ?example_set=default_rv&example=e12
  151. ^ GitHub의 CREATOR 소스 코드 : https://github.com/creatorsim/creator
  152. ^ "WepSIM with RISC-V_im example". WepSIM.
  153. ^ "WepSIM homepage".
  154. ^ "Chisel: Constructing Hardware in a Scala Embedded Language". UC Berkeley. Regents of the University of California. Retrieved 12 February 2015.
  155. ^ "Codasip Studio". Codasip. Retrieved 19 February 2021.
  156. ^ riscv/riscv-compliance, RISC-V, 12 February 2021, retrieved 19 February 2021
  157. ^ "RISC-V Debugger". www.lauterbach.com TRACE32 Debugger for RISC-V.
  158. ^ "Lauterbach and SiFive Bring TRACE32 Support for High-Performance RISC-V Cores". www.sifive.com.
  159. ^ "TRACE32 supports SiFive's RISC-V trace". www.lauterbach.com. Archived from the original on 2 June 2022. Retrieved 6 March 2021.
  160. ^ "SEGGER Adds Support for SiFive's Coreplex IP to Its Industry Leading J-Link Debug Probe". Retrieved 19 September 2017.
  161. ^ "PR: SEGGER Embedded Studio supports RISC-V architecture". Retrieved 23 November 2017.
  162. ^ "PR: SEGGER presents RTOS, stacks, middleware for RISC-V". Retrieved 8 December 2017.
  163. ^ Dahad, Nitin (23 June 2020). "Siemens Acquires UltraSoC for SoC Lifecycle Product Suite". EE Times. Retrieved 12 July 2023.

추가열람

외부 링크