[논문 리뷰] RVCoreP-32IM: An effective architecture to implement mul/div instructions for five stage RISC-V soft processors
이 논문은 5단계 순서형 RISC-V 소프트 프로세서 확장인 RVCoreP-32IM을 제안하며, 간단한 포크-조인 마이크로아키텍처 구조를 사용해 하드웨어 곱셈 및 나눗셈(M-확장)을 효율적으로 통합한다. 루트-4 및 DSP 기반 곱셈기 벤치마크에서 RV32I 대비 각각 1.87× 및 3.13×의 성능 향상을 달성했으며, VexRiscv 대비 13% 높은 성능을 기록했고, 면적 오버헤드는 오직 1.5×에 불과하다.
RISC-V, an open instruction set architecture, is getting the attention of soft processor developers. Implementing only a basic 32-bit integer instruction set of RISC-V, which is defined as RV32I, might be satisfactory for embedded systems. However, multiplication and division instructions are not present in RV32I, rather than defined as M-extension. Several research projects have proposed both RV32I and RV32IM processor. However, there is no indication of how much performance can be improved by adding M-extension to RV32I. In other words, when we should consider adding M-extension into the soft processor and how much hardware resource requirements will increase. In this paper, we propose an extension of the RVCoreP soft processor (which implements RV32I instruction set only) to support RISC-V M-extension instructions. A simple fork-join method is used to expand the execution capability to support M-extension instructions as well as a possible future enhancement. We then perform the benchmark using Dhrystone, Coremark, and Embench programs. We found that RV32IM is 1.87 and 3.13 times better in performance for radix-4 and DSP multiplier, respectively. In addition to that, our RV32IM implementation is 13\% better than the equivalent RISC-V processor.
연구 동기 및 목표
- 5단계 순서형 소프트 프로세서에 RISC-V M-확장(MUL/DIV)을 통합할 때의 성능 및 자원 비용을 평가하는 것.
- 실행 단계에서 포크-조인 구조를 사용해 M-확장 명령어를 효율적이고 저비용으로 확장하는 마이크로아키텍처 확장을 설계하는 것.
- 표준 벤치마크를 기반으로 루트-4 대비 DSP 기반 구현에서의 성능을 비교하는 것.
- 컴파일러 최적화 및 명령어 조합이 M-확장 지원으로 인한 성능 향상에 미치는 영향을 평가하는 것.
- 미래의 커스텀 명령어를 포함해 소프트 프로세서를 RISC-V 확장 기능으로 확장할 수 있는 재사용 가능하고 구성 가능한 프레임워크를 제공하는 것.
제안 방법
- 기존 RVCoreP-32I 소프트 프로세서(RV32I 전용)에 실행 단계에서 포크-조인 구조를 사용한 다단계 실행 유닛을 추가해 M-확장 명령어를 지원한다.
- 순차적 루트-4 보우트 곱셈기와 고성능을 위한 DSP 블록 기반 곱셈기를 두 가지 변형으로 구현한다.
- 간단함과 LUT 효율성을 우선시해 디지트 재귀 나눗셈 알고리즘을 사용해 하드웨어 나눗셈을 구현한다.
- Verilog HDL로 프로세서를 구성해 RV32I 및 RV32IM 명령어 세트를 모두 지원하며 런타임 시 명령어 세트 선택 기능을 제공한다.
- Artix-7 FPGA에서 자원 사용량과 성능을 측정하기 위해 표준 벤치마크(Dhrystone, Coremark, Embench)를 사용한다.
- 성능 향상 정도를 정량화하기 위해 VexRiscv 및 기타 구현체와의 실행 시간, DMIPS/MHz, Coremark/MHz 지표를 비교한다.
실험 결과
연구 질문
- RQ15단계 순서형 RISC-V 소프트 프로세서에서 M-확장(MUL/DIV)을 추가하면 RV32I 대비 얼마나 성능 향상이 이루어지는가?
- RQ2소프트 프로세서에 M-확장 명령어를 통합할 경우 하드웨어 면적 오버헤드는 어느 정도인가?
- RQ3다른 곱셈기 구현 방식(Radix-4 대비 DSP 기반)이 성능 및 자원 사용에 어떤 영향을 미치는가?
- RQ4컴파일러 최적화 및 명령어 조합은 하드웨어 곱셈 및 나눗셈으로 인한 성능 향상에 어느 정도 기여하는가?
- RQ5간단한 포크-조인 마이크로아키텍처 확장이 최소한의 면적 및 타이밍 오버헤드로 M-확장 기능을 효과적으로 지원할 수 있는가?
주요 결과
- 루트-4 보우트 곱셈기를 사용할 경우 RVCoreP-32IM은 RV32I 대비 평균 1.87× 성능 향상을 달성한다.
- DSP 기반 곱셈기를 사용할 경우 RV32I 대비 성능 향상이 3.13×로 증가하여 고속도 하드웨어 곱셈기의 유의미한 이점이 있음을 시사한다.
- 모든 벤치마크 프로그램에서 RVCoreP-32IM은 총 실행 시간 기준 VexRiscv 대비 13% 높은 성능을 기록한다.
- DMIPS/MHz는 RV32I의 1.03에서 DSP 곱셈기 사용 시 1.40으로 상승했고, Coremark/MHz는 0.84에서 2.33로 증가했다.
- RV32IM의 FPGA 자원 활용률은 RV32I 대비 약 1.5×로, 높은 성능 향상에 비해 중간 수준의 면적 비용을 유발한다.
- M-확장 명령어 비율이 높은 계산 집약적인 워크로드(예: cubic, matmult-int)에서 성능 향상이 가장 두드러진다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.