Skip to main content
QUICK REVIEW

[논문 리뷰] The Renewed Case for the Reduced Instruction Set Computer: Avoiding ISA Bloat with Macro-Op Fusion for RISC-V

Christopher Celio, Palmer Dabbelt|arXiv (Cornell University)|2016. 07. 08.
Parallel Computing and Optimization Techniques참고 문헌 1인용 수 15
한 줄 요약

이 논문은 RISC-V가 ISA를 확장하지 않고도 일반적인 명령어 조합을 단일 내부 연산으로 통합하는 매크로 옵코드 융합 기법을 통해 x86-64 같은 CISC ISA와 유사한 성능과 코드 밀도를 달성할 수 있다고 주장한다. 비교 및 브랜치 등의 빈번한 일관성 패tern을 융합함으로써 RISC-V는 효과적인 명령어 수를 5.4% 감소시키고, 압축 명령어 세트와 결합했을 때 x86-64보다 동적 명령어 바이트 수가 8% 적게 발생한다. 이는 최소 크기의 개방형 ISA가 지시어 세트의 복잡성 증가 없이 마이크로아키텍처 혁신을 통해 복잡한 ISA를 능가할 수 있음을 보여준다.

ABSTRACT

This report makes the case that a well-designed Reduced Instruction Set Computer (RISC) can match, and even exceed, the performance and code density of existing commercial Complex Instruction Set Computers (CISC) while maintaining the simplicity and cost-effectiveness that underpins the original RISC goals. We begin by comparing the dynamic instruction counts and dynamic instruction bytes fetched for the popular proprietary ARMv7, ARMv8, IA-32, and x86-64 Instruction Set Architectures (ISAs) against the free and open RISC-V RV64G and RV64GC ISAs when running the SPEC CINT2006 benchmark suite. RISC-V was designed as a very small ISA to support a wide range of implementations, and has a less mature compiler toolchain. However, we observe that on SPEC CINT2006 RV64G executes on average 16% more instructions than x86-64, 3% more instructions than IA-32, 9% more instructions than ARMv8, but 4% fewer instructions than ARMv7. CISC x86 implementations break up complex instructions into smaller internal RISC-like micro-ops, and the RV64G instruction count is within 2% of the x86-64 retired micro-op count. RV64GC, the compressed variant of RV64G, is the densest ISA studied, fetching 8% fewer dynamic instruction bytes than x86-64. We observed that much of the increased RISC-V instruction count is due to a small set of common multi-instruction idioms. Exploiting this fact, the RV64G and RV64GC effective instruction count can be reduced by 5.4% on average by leveraging macro-op fusion. Combining the compressed RISC-V ISA extension with macro-op fusion provides both the densest ISA and the fewest dynamic operations retired per program, reducing the motivation to add more instructions to the ISA. This approach retains a single simple ISA suitable for both low-end and high-end implementations, where high-end implementations can boost performance through microarchitectural techniques.

연구 동기 및 목표

  • 최소 크기의 개방형 RISC-V 지시어 세트가 x86-64와 ARM과 같은 상업적 CISC ISA의 성능과 코드 밀도를 따라잡거나 초월할 수 있는지 평가하는 것.
  • 매크로 옵코드 융합이 지시어 세트를 확장하지 않고도 RISC-V의 효과적인 명령어 수를 줄일 수 있는지 조사하는 것.
  • 매크로 옵코드 융합과 같은 마이크로아키텍처 기법이 CISC ISA보다 높은 동적 명령어 수를 보이는 RISC-V의 성능을 보완할 수 있는지 보여주는 것.
  • 매크로 옵코드 융합과 RISC-V 압축 명령어 세트(RV64GC)를 조합하면 연구된 모든 ISA 중에서 가장 높은 명령어 취득 성능을 달성하는지 확인하는 것.
  • 지시어 세트의 복잡성 증가 없이 마이크로아키텍처 최적화를 통해 저성능 및 고성능 프로세서를 모두 지원할 수 있는 단일 간단하고 확장 가능한 지시어 세트를 주장하는 것.

제안 방법

  • 저자들은 SPEC CINT2006 벤치마크 세트를 사용하여 ARMv7, ARMv8, IA-32, x86-64, RV64G, RV64GC 등 6개의 지시어 세트 간의 동적 명령어 수와 취득된 명령어 바이트 수를 비교한다.
  • 비교 및 브랜치 시퀀스와 같은 일반적인 명령어 패턴이 RISC-V의 높은 명령어 수에 기여하며, 매크로 옵코드 융합의 주요 후보가 되는지 확인한다.
  • GCC 내부의 기존 컴파일러 훅, 특히 TARGET_SCHED_MACRO_FUSION_PAIR_P를 활용하여 코드 생성 중에 호환 가능한 명령어 쌍을 탐지하고 융합하는 방법을 제안한다.
  • 융합 가능한 명령어 쌍의 수를 늘리기 위해 공격적인 레지스터 재사용을 가능하게 하는 수정된 레지스터 할당 전략을 적용한다.
  • 매크로 옵코드 융합의 효과는 x86-64의 마이크로옵 총수 대비 효과적인 명령어 수 감소와 동적 명령어 바이트 감소를 측정하여 평가한다.
  • RISC-V 압축 지시어 세트(RV64GC)와 매크로 옵코드 융합을 조합하여 코드 밀도와 실행 효율성 향상의 누적 효과를 평가한다.

실험 결과

연구 질문

  • RQ1매크로 옵코드 융합이 RISC-V의 효과적인 명령어 수를 x86-64와 같은 CISC ISA 수준으로 낮출 수 있는가?
  • RQ2RISC-V 압축 지시어 세트(RV64GC)는 x86-64와 다른 ISA보다 코드 밀도를 얼마나 향상시키는가?
  • RQ3RISC-V 지시어 세트를 확장하지 않고 매크로 옵코드 융합을 통해 얼마나 많은 성능 향상을 기대할 수 있는가?
  • RQ4컴파일러 인식 매크로 옵코드 융합은 RISC-V 코드에서 융합 가능한 명령어 쌍의 수에 어떤 영향을 미치는가?
  • RQ5단일 최소 크기의 RISC-V 지시어 세트가 지시어 세트 확장 없이 마이크로아키텍처 최적화를 통해 저성능 및 고성능 프로세서를 모두 지원할 수 있는가?

주요 결과

  • RV64G는 x86-64보다 16% 더 많은 명령어를 실행하고, 명령어 바이트 수는 23% 더 많지만, 퇴출된 마이크로옵 수 대비 명령어 수는 x86-64와 2% 이내로 근접해 있다.
  • RISC-V의 압축 버전인 RV64GC는 x86-64보다 동적 명령어 바이트 수가 8% 적게 취득되어 본 연구에서 가장 높은 코드 밀도를 보였다.
  • 매크로 옵코드 융합은 RISC-V의 평균 효과적인 명령어 수를 5.4% 감소시켜, x86-64의 마이크로옵 수 대비 4.2% 적은 효과적인 명령어 수를 달성했다.
  • 연구에서 컴파일러 한계로 인해 잠재적인 매크로 옵코드 융합 기회의 절반 이상이 현재 누락되고 있음을 확인하여, 여전히 크게 잠재된 성능 향상 여건이 있음을 시사한다.
  • 매크로 옵코드 융합과 RISC-V 압축 지시어 세트의 조합은 지시어 세트의 복잡성 증가 없이도 높은 성능과 높은 코드 밀도를 동시에 달성할 수 있음을 보여주며, 단일 단순 지시어 세트가 가능함을 입증한다.
  • 결과는 매크로 옵코드 융합과 같은 마이크로아키텍처 기법이 RISC-V의 높은 동적 명령어 수를 상쇄할 수 있으며, 지시어 세트 확장 없이도 CISC ISA와 경쟁 가능한 성능을 달성할 수 있음을 보여준다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.