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)|Jul 8, 2016
Parallel Computing and Optimization Techniques参考文献 1被引用数 15
ひとこと要約

この論文は、ISAを拡張せずに、マクロオペレーション統合という技術を用いて、RISC-Vがx86-64などのCISC ISAと同等の性能とコード密度を達成できることを主張している。マクロオペレーション統合は、ISAを拡張せずに、頻繁に出現する命令列を内部的な単一の操作に統合するものである。比較と分岐の典型的な組み合わせといったよくあるイディオムを統合することで、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 ISAが、x86-64 や ARM などの商業的 CISC ISA と同等の性能とコード密度を達成できるかどうかを評価すること。
  • マクロオペレーション統合が、ISAの拡張なしにRISC-Vの有効命令数を削減できることを調査すること。これにより、ISAの肥大化を回避できる。
  • マイクロアーキテクチャ的手法(例:マクロオペレーション統合)が、CISC ISA よりも高い動的命令数を示すRISC-Vの性能を補完できることを示すこと。
  • マクロオペレーション統合とRISC-Vの圧縮命令セット(RV64GC)を組み合わせることで、調査されたすべてのISAの中で最も高い命令フェッチ効率を達成できることを示すこと。
  • マイクロアーキテクチャ的最適化によって、低性能プロセッサから高性能プロセッサまでをカバーできる単一でシンプルで拡張可能なISAを提唱すること。

提案手法

  • 著者たちは、SPEC CINT2006ベンチマークスイートを用いて、ARMv7、ARMv8、IA-32、x86-64、RV64G、RV64GC の6つのISAについて、動的命令数とフェッチされた命令バイト数を比較した。
  • 比較と分岐のシーケンスのような一般的な命令イディオムを特定し、これらがRISC-Vの命令数の増加に寄与しており、マクロオペレーション統合の好ましい候補であることを特定した。
  • GCC に既存のコンパイラフック(特に TARGET_SCHED_MACRO_FUSION_PAIR_P)を活用し、コード生成段階で互換性のある命令ペアを検出し、統合する手法を提案した。
  • 積極的なレジスタ再利用を可能にするために、レジスタ割り当て戦略を変更し、統合可能な命令ペアの数を増加させた。
  • マクロオペレーション統合の有効性は、x86-64のマイクロオペレーション数と比較した有効命令数と動的命令バイト数の削減量を測定することで評価した。
  • RISC-Vの圧縮ISA(RV64GC)とマクロオペレーション統合を組み合わせ、コード密度と実行効率への累積的利点を評価した。

実験結果

リサーチクエスチョン

  • RQ1マクロオペレーション統合により、RISC-Vの有効命令数をx86-64などのCISC ISAと競合可能な水準まで削減できるか?
  • RQ2RISC-Vの圧縮ISA(RV64GC)は、x86-64 や他のISAと比較して、どの程度コード密度が向上するか?
  • RQ3RISC-V ISAを拡張せずに、マクロオペレーション統合によってどの程度のパフォーマンス向上が達成できるか?
  • RQ4コンパイラ対応のマクロオペレーション統合は、RISC-Vコードにおける統合可能な命令ペアの数にどのような影響を与えるか?
  • RQ5単一で最小限のRISC-V ISAが、ISA拡張ではなくマイクロアーキテクチャ的最適化によって、低性能プロセッサと高性能プロセッサの両方をカバーできるか?

主な発見

  • RV64Gはx86-64に比べて16%多くの命令を実行し、23%多くの命令バイトをフェッチするが、その命令数はx86-64の退役マイクロオペレーション数と2%以内に収まる。
  • RISC-Vの圧縮バージョン(RV64GC)は、x86-64に比べて8%少ない動的命令バイトをフェッチし、本研究で調査された中で最も高いコード密度を示した。
  • マクロオペレーション統合により、RISC-Vの有効命令数は平均で5.4%削減され、x86-64のマイクロオペレーション数と比較して4.2%少ない有効命令数にまで低下した。
  • 研究では、マクロオペレーション統合の潜在的機会の半数以上が、現在のコンパイラの制限により無視されていることが判明し、未だに大きな性能向上の余地があることが示された。
  • マクロオペレーション統合とRISC-Vの圧縮ISAの組み合わせにより、ISAの肥大化を回避しながら、高性能と高いコード密度を両立できる単一でシンプルなISAを実現した。
  • 結果から、マクロオペレーション統合のようなマイクロアーキテクチャ的手法が、RISC-Vの高い動的命令数を補完でき、ISA拡張なしにCISC ISAと同等の競争力を持つことが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。