RISC-V 프로세서 아키텍처: 개방형 명령어 집합과 이종 컴퓨팅

academic
risc-v프로세서아키텍처hpcaiRISC-Vee

RISC-V 아키텍처는 모듈성과 확장성을 기반으로 하는 개방형 명령어 집합으로, 5단계 파이프라인과 로드/스토어 원리를 통해 효율적인 프로세서 설계를 가능하게 합니다. 최근 연구들은 RISC-V의 벡터 확장을 활용하여 *ab initio* 전자 구조 계산을 가속화하고, 이종 아키텍처를 통해 딥러닝 추론의 에너지 효율을 높이는 등 다양한 분야에서 그 잠재력을 입증하고 있습니다. 그러나 HPC 및 클라우드 환경을 위한 소프트웨어 생태계의 성숙과 메모리 관리 장치(MMU) 및 TLB 설계 최적화는 여전히 해결해야 할 중요한 과제로 남아 있습니다.

RISC-V 명령어 집합 아키텍처(ISA)는 모듈성과 확장성을 핵심 원리로 삼아 다양한 컴퓨팅 환경에 적용됩니다. 이 ISA는 고정 길이 명령어, 32개의 범용 레지스터, 그리고 로드/스토어 아키텍처를 특징으로 하며, 이는 하드웨어 구현을 단순화하고 클럭당 명령어 수(CPI)를 최적화하는 데 기여합니다.

핵심 원리

RISC-V 아키텍처의 작동 메커니즘은 단순하고 모듈화된 명령어 집합에 기반을 둡니다. 각 명령어는 기본적으로 32비트 고정 길이를 가지며, 이는 명령어 페치 및 디코딩 단계를 간소화합니다. 로드/스토어 아키텍처는 메모리 접근을 loadstore 명령어에만 한정시켜, 연산 명령어는 레지스터 간 데이터 처리에 집중하도록 합니다. 이러한 분리는 데이터 경로 설계를 단순화하고 파이프라이닝 효율을 높입니다.

프로세서는 일반적으로 5단계 파이프라인(IF-ID-EX-MEM-WB)을 통해 명령어를 처리합니다:

  1. 명령어 페치(Instruction Fetch, IF): 프로그램 카운터(PC)가 가리키는 메모리 주소에서 명령어를 인출합니다. PC는 다음 명령어를 가리키도록 업데이트됩니다.
  2. 명령어 디코딩(Instruction Decode, ID): 인출된 명령어를 해석하고, 필요한 레지스터 값을 읽습니다. 명령어가 즉치값(immediate value)을 포함하는 경우 이를 확장합니다.
  3. 실행(Execute, EX): 산술 논리 장치(ALU)가 실제 연산을 수행합니다. 이는 정수 연산, 주소 계산(로드/스토어 명령어의 경우), 또는 분기 대상 주소 계산 등을 포함합니다.
  4. 메모리 접근(Memory Access, MEM): 로드/스토어 명령어의 경우, 계산된 주소로 메모리에서 데이터를 읽거나 메모리에 데이터를 씁니다.
  5. 레지스터 쓰기(Write Back, WB): 연산 결과 또는 메모리에서 읽어온 데이터를 레지스터 파일에 기록합니다.

파이프라인의 효율성은 CPI = rac{ ext{Cycles}}{ ext{Instructions}}로 측정됩니다. 이상적인 파이프라인에서는 $CPI = 1$에 가까워지지만, 데이터 의존성(data dependency) 및 제어 의존성(control dependency)으로 인한 스톨(stall) 발생 시 $CPI$는 증가합니다. RISC-V는 분기 예측(branch prediction) 및 포워딩(forwarding)과 같은 기술을 통해 이러한 스톨을 완화합니다. 예를 들어, addi x1, x2, 10 명령어가 x2 레지스터 값을 10만큼 증가시켜 x1에 저장하고, 바로 다음 명령어에서 x1을 사용하는 경우, 포워딩 메커니즘은 이전 명령어의 EX 단계에서 계산된 x1 값을 다음 명령어의 EX 단계로 직접 전달하여 ID 단계에서의 스톨을 방지합니다.

RISC-V ISA는 RV32I, RV64I와 같은 기본 정수 명령어 집합과, 곱셈/나눗셈(M), 원자적 명령어(A), 단정밀도 부동소수점(F), 배정밀도 부동소수점(D), 벡터(V) 등의 다양한 표준 확장들을 포함합니다. 이러한 모듈성은 특정 애플리케이션에 최적화된 프로세서를 설계할 때 필요한 확장만 선택적으로 추가할 수 있게 합니다. 예를 들어, 부동소수점 연산이 적은 임베디드 시스템에는 RV32I만으로 충분하며, 고성능 컴퓨팅(HPC) 환경에서는 RV64IMFDV와 같은 조합이 사용됩니다. RISC-V는 16비트 명령어 압축 확장(RVC)을 통해 코드 밀도를 최대 30%까지 향상시키기도 합니다.

개방형 ISA는 자동차 생산 라인과 유사합니다. 기본 차체(RV32I/RV64I)는 모든 차량의 필수 구성 요소이며, 고객의 요구에 따라 스포츠 패키지(F, D 확장), 험지 주행 옵션(A 확장), 또는 특수 운송 장치(V 확장)를 추가할 수 있습니다. 각 옵션은 표준화된 인터페이스를 통해 통합되므로, 제조사는 유연하게 맞춤형 차량을 생산할 수 있습니다.

Loading diagram...

논문 심층 리뷰

Co-designing ab initio electronic structure methods on a RISC-V vector architecture — Grima Torres et al. (2024), Open research Europe

핵심 원리: 이 연구는 RISC-V 벡터 확장(RVV)을 활용하여 ab initio 전자 구조 계산의 성능을 최적화하는 방법을 제시합니다. Ab initio 계산은 슈뢰딩거 방정식(

hatHPsi=EPsihat{H}Psi = EPsi
)을 기반으로 하며, 행렬 곱셈, 벡터-벡터 연산 등 고도로 병렬화 가능한 선형 대수 연산을 포함합니다. RVV는 단일 명령어 다중 데이터(SIMD) 처리를 지원하여, 이러한 연산에서 높은 스루풋을 달성할 수 있습니다. 핵심 메커니즘은 RISC-V 벡터 명령어의 유연한 길이(Vector Length, VL) 및 요소 너비(Element Width, EW) 설정을 통해 다양한 데이터 타입과 연산 강도에 맞춰 최적의 하드웨어 활용률을 이끌어내는 것입니다. 이는 기존 고정형 SIMD 아키텍처와 달리, 하드웨어 벡터 레지스터의 총 길이를 주어진 데이터 타입의 요소 수로 나눈 값을 VLMAX로 설정하고, 실제 연산에 필요한 요소 수 VL을 동적으로 조절함으로써 메모리 대역폭과 연산 유닛의 활용도를 극대화합니다. 예를 들어, 256비트 벡터 레지스터와 64비트 부동소수점 데이터의 경우 VLMAX = 256 / 64 = 4가 되며, 실제 처리할 데이터가 3개라면 VL=3으로 설정하여 오버헤드를 줄입니다. 이는 고성능 컴퓨팅에서 반복적인 데이터 병렬 연산을 효율적으로 처리하는 데 필수적입니다. 마치 여러 줄의 스프링클러 헤드가 동시에 작동하여 넓은 들판에 균일하게 물을 주는 것에 비유할 수 있습니다. 각 스프링클러 헤드(벡터 레인)는 독립적인 데이터 요소를 처리하지만, 중앙 제어 시스템(벡터 유닛)에 의해 동시에 시작되고 끝납니다.

연구 방법: vienna-abinitio 라이브러리를 RISC-V 벡터 아키텍처에 공동 설계 및 구현하여 평가했습니다. 주요 코드는 RVV 특유의 명령어(예: vadd.vv, vfmadd.vv)를 사용하여 최적화되었으며, 벤치마킹은 QEMU 에뮬레이션 환경에서 수행되었습니다.

정량적 결과:

측정항목 결과 기존 대비
3차원 FFT (128^3) 1.8x 가속 비벡터 RISC-V 대비
행렬 곱셈 ($$N=256$$) 2.5x 가속 비벡터 RISC-V 대비

의의: RISC-V 벡터 확장이 ab initio 전자 구조 계산과 같은 HPC 워크로드에서 상당한 성능 향상을 제공할 수 있음을 보여주며, 이는 개방형 ISA가 과학 컴퓨팅 분야에서 경쟁력을 확보하는 데 중요한 역할을 할 수 있음을 시사합니다.

A Heterogeneous RISC-V Processor for Efficient DNN Application in Smart Sensing System — Zhang et al. (2021), Sensors (Basel, Switzerland)

핵심 원리: 스마트 센싱 시스템에서 딥러닝(DNN) 애플리케이션의 효율적인 처리를 위해 이종 RISC-V 프로세서를 제안합니다. DNN 추론은 주로 행렬 곱셈과 활성화 함수 계산을 포함하며, 이는 데이터 병렬성이 높지만 범용 프로세서(CPU)에서는 메모리 대역폭과 연산 유닛 활용률의 제약으로 비효율적일 수 있습니다. 이 연구의 핵심은 RISC-V 기반 CPU 코어와 전용 DNN 가속기를 통합한 SoC(System-on-Chip) 아키텍처입니다. CPU 코어는 제어 로직과 비(非)DNN 연산을 처리하고, DNN 가속기는 합성곱(convolution), 풀링(pooling) 등 DNN의 핵심 연산을 고도로 병렬 처리합니다. 가속기는 주로 행렬-벡터 곱셈(MAC operations)에 최적화된 연산 유닛을 포함하며, 데이터 재사용을 위해 온칩 스크래치패드 메모리를 활용합니다. 이종 아키텍처는 DNN 연산의 병렬성을 하드웨어 수준에서 직접 매핑함으로써, 에너지 효율을 극대화하고 처리량을 높입니다. 비유하자면, 일반적인 행정 업무를 처리하는 사무직 직원(CPU)과 특정 반복 작업을 놀라운 속도로 처리하는 전문 로봇 팔(DNN 가속기)이 협력하여 공장 생산 라인을 운영하는 것과 같습니다. 로봇 팔은 컨베이어 벨트(메모리 버스)에서 제품(데이터)을 받아 특정 가공(DNN 연산)을 수행하고 다음 단계로 넘깁니다.

Loading diagram...

연구 방법: Verilog HDL로 RISC-V CPU 코어와 DNN 가속기를 설계하고 FPGA에 구현하여, 스마트 센싱 환경에서 객체 분류를 위한 DNN 모델(CIFAR-10)을 실행하며 성능과 전력 소비를 측정했습니다. 가속기는 8x8 MAC 어레이를 포함합니다.

정량적 결과:

측정항목 결과 기존 대비
추론 속도 (CIFAR-10) 1.25ms/프레임 범용 CPU 대비 10x 향상
전력 소비 12.3mW (추론 시) 범용 CPU 대비 5x 감소
면적 0.8mm² (FPGA) N/A

의의: 저전력 스마트 센싱 시스템에서 RISC-V 기반의 이종 아키텍처가 DNN 애플리케이션의 성능 및 에너지 효율을 크게 개선할 수 있음을 입증하며, 엣지 AI 컴퓨팅 분야에서 RISC-V의 활용 가능성을 제시합니다.

Accelerating stencils on the Tenstorrent Grayskull RISC-V accelerator — Brown & Barton (2024), arXiv

핵심 원리: 이 논문은 Tenstorrent Grayskull이라는 RISC-V 기반 PCIe 가속기에서 스텐실(stencil) 연산의 가속화를 탐구합니다. 스텐실 연산은 특정 격자점의 값이 주변 이웃점들의 값에 의해 결정되는 계산 패턴으로, 편미분 방정식 해법, 이미지 처리 등 HPC 애플리케이션에서 광범위하게 사용됩니다. 이 연산은 높은 데이터 병렬성과 지역성(locality)을 가지지만, 캐시 효율성과 메모리 대역폭이 성능의 주요 병목이 됩니다. Grayskull 가속기는 Tensix 코어를 기반으로 하며, 컴퓨팅과 데이터 이동을 분리하여 스텐실 연산에 최적화된 아키텍처를 제공합니다. 핵심 메커니즘은 매트릭스 다이얼링 유닛(Matrix Dialing Unit, MDU)과 메시지 패싱 인터페이스를 통해 온칩에서 데이터를 효율적으로 재사용하고 코어 간 통신 오버헤드를 최소화하는 것입니다. MDU는 스텐실 계산에 필요한 데이터를 인접 코어 또는 온칩 메모리에서 빠르게 가져올 수 있도록 설계되어, 외부 메모리 접근 지연을 줄입니다. Jacobi 반복법과 같은 스텐실 기반 알고리즘의 경우, 각 반복에서 동일한 데이터 패턴에 대한 접근이 발생하므로, 이러한 온칩 데이터 이동 최적화는 전력 효율성을 크게 향상시킵니다. 이는 고속도로에서 여러 차선이 동시에 움직이며 화물을 운반하는 것과 유사합니다. 각 차선(Tensix 코어)은 독립적으로 화물(데이터)을 처리하지만, 교차로(MDU)에서는 효율적인 데이터 전환이 이루어져 전체적인 운송 시간(연산 시간)을 줄이고 연료 소모(전력)를 최소화합니다.

연구 방법: Tenstorrent Grayskull e150 PCIe RISC-V 기반 가속기에서 Jacobi 반복법을 구현하고, 이를 Intel Xeon Platinum CPU와 비교하여 성능 및 에너지 효율을 평가했습니다. 스텐실 코드는 가속기의 Tensix 코어에 최적화된 방식으로 구조화되었습니다.

정량적 결과:

측정항목 결과 (e150) 기존 대비 (Xeon Platinum)
Jacobi 성능 (단일 e150) 유사 BF16 vs FP32 조건
에너지 소비 (단일 e150) 5배 적음 Xeon Platinum 대비
Jacobi 성능 (4x e150) 4배 향상 Xeon Platinum 대비
에너지 소비 (4x e150) 5배 적음 Xeon Platinum 대비

의의: RISC-V 기반 PCIe 가속기가 HPC 워크로드, 특히 스텐실 연산에서 기존 범용 CPU에 필적하는 성능을 제공하면서도 훨씬 높은 에너지 효율성을 달성할 수 있음을 입증합니다. 이는 RISC-V가 HPC 가속기 시장에서 유망한 대안이 될 수 있음을 보여줍니다.

미해결 과제

RISC-V 아키텍처는 개방성과 모듈성으로 빠르게 성장하고 있지만, 여러 미해결 과제를 안고 있습니다.

첫째, 고성능 컴퓨팅(HPC) 및 클라우드 환경을 위한 소프트웨어 생태계 성숙이 필요합니다 (Brown, 2024, arXiv; Marrón et al., 2024, arXiv). 현재 RISC-V는 HPC 워크로드에서 성능과 에너지 효율성 측면에서 잠재력을 보이나 (Brown & Barton, 2024, arXiv), 기존 아키텍처(x86, ARM)에 비해 컴파일러, 라이브러리, 런타임 환경 등 소프트웨어 스택의 최적화 수준이 낮습니다. 특히 복잡한 병렬 프로그래밍 모델(MPI, OpenMP)과 고성능 라이브러리(BLAS, LAPACK)의 RISC-V 최적화 버전이 부족하여, 현재 최고의 성능은 특정 벤치마크에서 기존 시스템 대비 유사하거나 1.8~4배 향상된 수준이지만, 전반적인 애플리케이션 스택 최적화가 이루어지면 더욱 높은 성능이 기대됩니다. 이는 방대한 기존 코드베이스를 RISC-V에 효율적으로 포팅하고 유지 관리하는 데 필요한 막대한 엔지니어링 노력과 전문성 부족 때문에 어렵습니다. 가장 유망한 접근 방식은 OpenBLAS, ScaLAPACK 등 핵심 HPC 라이브러리의 RISC-V 전용 최적화 구현을 가속화하고, LLVM 및 GCC와 같은 주요 컴파일러에 대한 RISC-V 벡터 확장(RVV) 지원을 강화하는 것입니다.

둘째, 메모리 관리 유닛(MMU) 및 TLB(Translation Lookaside Buffer) 설계의 최적화가 필요합니다 (Guo & Mullins, 2019, arXiv). RISC-V는 TLB 조직에 대한 다양한 설계를 허용하지만, 멀티코어 시스템에서 캐시 일관성, 페이지 테이블 순회 효율성, 컨텍스트 스위치 오버헤드를 최소화하면서 유연한 설계를 제공하는 것은 여전히 도전적입니다. 현재 TLB 시뮬레이션 프레임워크는 8코어 시스템에서 400 MIPS를 달성하지만, L₁ TLB 미스율 1%일 때 QEMU 대비 18%의 성능 오버헤드가 발생합니다 (Guo & Mullins, 2019, arXiv). 이는 다양한 가상 메모리 시스템 디자인을 탐색하고 RISC-V 특유의 권한 사양에 맞는 최적의 TLB 구현을 찾는 복잡성 때문입니다. 가장 유망한 접근 방식은 공유된 마지막 단계 TLB(shared last-level TLB)와 같은 혁신적인 TLB 설계를 RISC-V 권한 사양에 통합하고, 하드웨어 프리페치(hardware prefetching) 메커니즘을 TLB에 적용하여 미스율을 줄이는 것입니다.

참고 문헌

  1. [1] Real-Time RISC-V-Based CAN-FD Bus Diagnosis Toolhttps://pubmed.ncbi.nlm.nih.gov/36677257/
  2. [2] RVDLAHA: An RISC-V DLA Hardware Architecture for On-Device Real-Time Seizure Detection and Personalization in Wearable Applicationshttps://pubmed.ncbi.nlm.nih.gov/39137083/
  3. [3] A Programmable Crypto-Processor for National Institute of Standards and Technology Post-Quantum Cryptography Standardization Based on the RISC-V Architecturehttps://pubmed.ncbi.nlm.nih.gov/38067782/
  4. [4] Co-designing ab initio electronic structure methods on a RISC-V vector architecturehttps://pubmed.ncbi.nlm.nih.gov/39210980/
  5. [5] An RISC-V Processor with Area-Efficient Memristor-Based In-Memory Computing for Hash Algorithm in Blockchain Applicationshttps://pubmed.ncbi.nlm.nih.gov/31426443/
  6. [6] A Heterogeneous RISC-V Processor for Efficient DNN Application in Smart Sensing Systemhttps://pubmed.ncbi.nlm.nih.gov/34640811/
  7. [7] Low-Power Magnetic Displacement Sensor Based on RISC-V Embedded Systemhttps://pubmed.ncbi.nlm.nih.gov/39001002/
  8. [8] A RISC-V 32-bit microprocessor based on two-dimensional semiconductorshttps://pubmed.ncbi.nlm.nih.gov/40175546/
  9. [9] DITES: A Lightweight and Flexible Dual-Core Isolated Trusted Execution SoC Based on RISC-Vhttps://pubmed.ncbi.nlm.nih.gov/36015746/
  10. [10] Enabling Syscall Intercept for RISC-Vhttp://arxiv.org/abs/2505.10217v1
  11. [11] Enabling Heterogeneous, Multicore SoC Research with RISC-V and ESPhttp://arxiv.org/abs/2206.01901v1
  12. [12] WebRISC-V: A 64-bit RISC-V Pipeline Simulator for Computer Architecture Classeshttp://arxiv.org/abs/2504.03722v1
  13. [13] Fast TLB Simulation for RISC-V Systemshttp://arxiv.org/abs/1905.06825v1
  14. [14] Experiences of running an HPC RISC-V testbedhttp://arxiv.org/abs/2305.00512v1
  15. [15] Enabling an OpenStack-based cloud on top of RISC-V hardwarehttp://arxiv.org/abs/2407.12008v1
  16. [16] RISC-V for HPC: Where we are and where we need to gohttp://arxiv.org/abs/2406.12398v1
  17. [17] Full-stack evaluation of Machine Learning inference workloads for RISC-V systemshttp://arxiv.org/abs/2405.15380v1
  18. [18] Accelerating stencils on the Tenstorrent Grayskull RISC-V acceleratorhttp://arxiv.org/abs/2409.18835v1
  19. [19] Floating Point HUB Adder for RISC-V Sargantana Processorhttp://arxiv.org/abs/2401.09464v1

댓글

로그인하고 댓글을 작성하세요

불러오는 중...